使用 Swift Package Manager 集成依賴庫
本文首發(fā)于 Ficow Shen's Blog,原文地址: 使用 Swift Package Manager 集成依賴庫。
內(nèi)容概覽
- 前言
- 添加依賴包
- 在項目中使用依賴
- 管理已導(dǎo)入的依賴
- 在團隊中統(tǒng)一依賴的版本
- 總結(jié)
前言
在 Swift Package Manager 出現(xiàn)之前,我們需要使用 CococaPods, Carthage 等包管理工具來管理依賴。
現(xiàn)在,我們可以直接使用 Xcode 來管理依賴。Xcode 內(nèi)建了對 Git 版本控制系統(tǒng)的支持,我們可以輕松地使用 Xcode 中的 Swift Package Manager 來管理 公開的、私有的 倉庫中的包。
添加依賴包
首先,找到添加依賴的菜單:

然后,輸入依賴的名稱或者倉庫地址進行搜索。比如,我輸入了 alamofire:

可以看到,搜索結(jié)果有很多。我們可以根據(jù) 倉庫的名稱 還有 倉庫的主人 以及 倉庫的描述(fork, star的數(shù)量) 來找出我們真正期望的結(jié)果!當然,你也可以直接輸入倉庫的地址,然后進行下一步操作!
如果輸入的是倉庫地址,Xcode 就會校驗這個倉庫:

接下來,需要決定依賴的版本:

選擇決定版本的規(guī)則:

目前有4種規(guī)則,都基于語義化版本(表示法:MAJOR.MINOR.PATCH ,即: 大版本.小版本.修復(fù)版本):
Up to Next Major,比如:輸入a.b.c,依賴的版本就會在a.b.c到a+1.b.c之間;Up to Next Minor,比如:輸入a.b.c,依賴的版本就會在a.b.c到a.b+1.0之間;Range,指定一個自定義的版本范圍;Exact,指定一個固定版本;
當然,也可以選擇這個倉庫里的某個分支、提交記錄。然后,點擊下一步,Xcode 就會開始拉取依賴。

接下來,選擇需要導(dǎo)入依賴的目標(target),默認選擇的是應(yīng)用所在的目標:

導(dǎo)入完畢,最終效果如下:

在項目中使用依賴
如下所示,在項目中使用 Alamofire。如果可以編譯成功,則表示導(dǎo)入依賴成功。
import UIKit
import Alamofire
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
AF.request("https://httpbin.org/get").response { response in
debugPrint(response)
}
}
}
管理已導(dǎo)入的依賴

如果需要添加/刪除依賴,選中依賴對應(yīng)的行,然后點擊 + 或者 - 即可。
點擊刪除時,會有確認提示:

如果需要修改依賴的版本,雙擊依賴對應(yīng)的行,Xcode 會顯示修改版本的控制面板:

除此之外,也可以使用 Xcode 菜單欄中的選項:

各個選項的作用:
Reset Package Caches,重置依賴包的緩存Resolve Package Versions,生成Package.resolved文件,以確定依賴的版本信息Update to Latest Package Versions,根據(jù)您配置的依賴包的版本控制規(guī)則,對依賴包進行升級。
在團隊中統(tǒng)一依賴的版本
用 Swift Package Manager 導(dǎo)入依賴后,Xcode 會在 項目根目錄/項目名稱.xcodeproj/project.workspace/xcshareddata/swiftpm/ 這個目錄生成一個 Package.resolved 文件。其中的內(nèi)容大致如下:
{
"object": {
"pins": [
{
"package": "Alamofire",
"repositoryURL": "https://github.com/Alamofire/Alamofire.git",
"state": {
"branch": null,
"revision": "64dd16a5f2099dd5400f5e6d1442dc5ab0c1d917",
"version": "5.2.0"
}
}
]
},
"version": 1
}
把這個文件提交到 Git,可以幫助團隊成員統(tǒng)一依賴包的版本。
總結(jié)
整體來看,學(xué)習(xí)和使用 Swift Package Manager 都非常容易。而且,這是官方提供的工具,十分推薦使用!
你甚至不需要創(chuàng)建什么文件,也不需要操作命令行!只需要有一個 Git 倉庫的名稱或者地址,然后就可以導(dǎo)入依賴了,非常簡單、高效!
朋友,行動起來吧!感受 Swift Package Manager 帶給你的快樂 ~
參考內(nèi)容
Adding Package Dependencies to Your App

浙公網(wǎng)安備 33010602011771號