
本文為 Eul 樣章,如果您喜歡,請移步 AppStore/Eul 查看更多內容。
Eul 是一款 SwiftUI & Combine 教程 App(iOS、macOS),以文章(文字、圖片、代碼)配合真機示例(Xcode 12+、iOS 14+,macOS 11+)的形式呈現給讀者。筆者意在盡可能使用簡潔明了的語言闡述 SwiftUI & Combine 相關的知識,使讀者能快速掌握並在 iOS 開發中實踐。
概覽
Swift Package Manager(SPM)是 Xcode 內置的包管理工具,支持遠程公/私有庫和本地庫。
創建 Package Manager
創建方法
兩種方法:
- 在 Xcode 菜單欄依次選中 File > New > Package Manager
- 在目標文件夾中使用命令:
Swift package init
創建完成后,在 Sources 文件下添加代碼,然后按 cmd + B 編譯。如果發現編譯器報錯,是因為測試代碼有誤。如果我們不需要編寫測試代碼,注釋即可。

目錄結構
如下是一個 Package 的目錄結構:
.
├── Package.swift // 配置文件
├── README.md // 包的功能、使用說明
├── Sources // 源碼目錄
│ └── Biu
│ └── Print.swift
└── Tests // 測試文件目錄
├── BiuTests
│ ├── BiuTests.swift
│ └── XCTestManifests.swift
└── LinuxMain.swift
Package.swift 包含如下內容:
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
// 包名
name: "Biu",
// 包對外提供的 products(庫、可執行文件)
products: [
.library(
name: "Biu",
targets: ["Biu"]),
],
// 依賴的其它包
dependencies: [
// .package(url: /* package url */, from: "1.0.0"),
],
// 包含的 targets
targets: [
// 每個 target 所需依賴
.target(
name: "Biu",
dependencies: []),
.testTarget(
name: "BiuTests",
dependencies: ["Biu"]),
]
)
本地添加和測試 Package
- 新建一個 Biu_test 工程,直接將 Biu 目錄拖入工程
- General -> Frameworks, Libraries, and Embedded Content 下添加 Package
- 導入 Package(
import Biu)即可


注:如遇到無法導入或找不到 Package 的問題,可嘗試退出工程或重啟 Xcode 解決 🤷♂️
發布與更新 Package
可以使用 Git 命令,也可以使用 Xcode 內置的版本控制工具。
初次發布時,初始化 Package 為 Git 倉庫,打上 Tag,再推送至遠程倉庫。
更新 Package 后,打上新的 Tag,Push 即可。
使用 Package
添加
我們先移除上文中的工程 Biu_test 引入的本地 Package(Biu),然后在 Xcode 中選擇 File > Swift Packages > Add Package Dependency...,輸入 Package 地址(https://github.com/keisme/Biu),點擊 Next 安裝。
安裝完成后,重新運行項目,結果與預期一致。
更新
如果需要更新 Package,選擇 File > Swfit Packages > Update to Latest Package Versionse。
移除
在工程中找到 Swift Package Manager,移除相應的 Package。

本文為 Eul 樣章,如果您喜歡,請移步 AppStore/Eul 查看更多內容。
