使用 Swift Package Manager 整合依賴庫

炸雞啤酒不可負發表於2020-09-24

前言

 
在   出現之前,我們需要使用  ,   等包管理工具來管理依賴。
現在,我們可以直接使用 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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章