使用 Swift Package Manager 整合依賴庫
前言
在
出現之前,我們需要使用
,
等包管理工具來管理依賴。
現在,我們可以直接使用 Xcode 來管理依賴。Xcode 內建了對 Git 版本控制系統的支援,我們可以輕鬆地使用 Xcode 中的 Swift Package Manager 來管理
公開的
、
私有的
倉庫中的包。新增依賴包
首先,找到新增依賴的選單:
然後,輸入依賴的名稱或者倉庫地址進行搜尋。比如,我輸入了
alamofire
:
可以看到,搜尋結果有很多。我們可以根據
倉庫的名稱
還有
倉庫的主人
以及
倉庫的描述(fork, star的數量)
來找出我們真正期望的結果!當然,你也可以直接輸入倉庫的地址,然後進行下一步操作!
如果輸入的是倉庫地址,Xcode 就會校驗這個倉庫:
接下來,需要決定依賴的版本:
選擇決定版本的規則:
目前有4種規則,都基於
(表示法:
MAJOR.MINOR.PATCH
,即:
大版本.小版本.修復版本
):-
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 就會開始拉取依賴。
接下來,選擇需要匯入依賴的目標(target),預設選擇的是應用所在的目標:
匯入完畢,最終效果如下:
在專案中使用依賴
如下所示,在專案中使用
Alamofire
。如果可以編譯成功,則表示匯入依賴成功。import UIKit import Alamofire class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() AF.request(").response { response in debugPrint(response) } } }
管理已匯入的依賴
如果需要新增/刪除依賴,選中依賴對應的行,然後點選
+
或者
-
即可。
點選刪除時,會有確認提示:
如果需要修改依賴的版本,雙擊依賴對應的行,Xcode 會顯示修改版本的控制皮膚:
除此之外,也可以使用 Xcode 選單欄中的選項:
各個選項的作用:
-
Reset Package Caches
,重置依賴包的快取 -
Resolve Package Versions
,生成Package.resolved
檔案,以確定依賴的版本資訊 -
Update to Latest Package Versions
,根據您配置的依賴包的版本控制規則,對依賴包進行升級。
在團隊中統一依賴的版本
用 Swift Package Manager 匯入依賴後,Xcode 會在
專案根目錄/專案名稱.xcodeproj/
這個目錄生成一個
Package.resolved
檔案。其中的內容大致如下:{ "object": { "pins": [ { "package": "Alamofire", "repositoryURL": "{ "branch": null, "revision": "64dd16a5f2099dd5400f5e6d1442dc5ab0c1d917", "version": "5.2.0" } } ] }, "version": 1 }
把這個檔案提交到 Git,可以幫助團隊成員統一依賴包的版本。
總結
整體來看,學習和使用 Swift Package Manager 都非常容易。而且,這是官方提供的工具,十分推薦使用!
你甚至不需要建立什麼檔案,也不需要操作命令列!只需要有一個 Git 倉庫的名稱或者地址,然後就可以匯入依賴了,非常簡單、高效!
朋友,行動起來吧!感受 Swift Package Manager 帶給你的快樂 ~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69983799/viewspace-2723810/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Swift Package Manager使用總結SwiftPackage
- WWDC 2018:細說 Swift 包管理工具 (Swift Package Manager)SwiftPackage
- user_dependencies_trigger_view_package_body依賴ViewPackage
- Swift中依賴注入的解耦策略Swift依賴注入解耦
- Rust Package Manager:CargoRustPackageCargo
- 深入安卓Package Manager和Package Installer安卓Package
- 不要依賴Mock庫 - ErwinMock
- webapi - 使用依賴注入WebAPI依賴注入
- 分解uber依賴注入庫dig-使用篇依賴注入
- 使用IDEA模組之間依賴找不到依賴類Idea
- Red Hat Package Manager(簡稱RPM) 的使用Package
- 依賴管理和依賴範圍
- 依賴
- [KubernetesClient | 底層依賴庫]client
- 【資料庫之函式依賴】資料庫函式
- Laravel 使用依賴注入呼叫方法Laravel依賴注入
- 使用Mockito修改Bean的依賴MockitoBean
- 使用ReflectionTestUtils解決依賴注入依賴注入
- 依賴倒置(DIP)與依賴注入(DI)依賴注入
- 關於 SAP 電商雲 Spartacus UI package.json 中的 sass 依賴UIPackageJSON
- Golang 依賴注入設計哲學|12.6K 🌟 的依賴注入庫 wireGolang依賴注入
- Maven依賴管理:控制依賴的傳遞Maven
- Maven依賴範圍及依賴傳遞Maven
- 如何發現Python依賴庫漏洞Python
- Android studio 匯入依賴庫Android
- 快取依賴(檔案、資料庫)快取資料庫
- 動態庫遞迴依賴專項遞迴
- vue-cli3 使用 webpack-bundle-analyzer 分析依賴庫大小VueWeb
- 使用阿里雲Maven倉庫映象加快依賴下載速度阿里Maven
- 使用google wire解決依賴注入Go依賴注入
- 使用godep管理Golang專案依賴Golang
- 使用govendor管理Golang專案依賴Golang
- AI依賴算力,而算力依賴能源AI
- 程式設計新手最好別依賴整合開發環境程式設計開發環境
- Spring+SpringMvc+Mybatis框架整合搭建教程二(依賴配置及框架整合)SpringMVCMyBatis框架
- 利用 uber-go/dig 庫管理依賴Go
- 前端彙總系列:npm依賴(類庫工具)前端NPM
- 如何對 Android 庫進行依賴管理?Android