使用 Swift Package Manager 集成依賴庫

 

本文首發於 Ficow Shen’s Blog,原文地址: 使用 Swift Package Manager 集成依賴庫

 

內容概覽

  • 前言
  • 添加依賴包
  • 在項目中使用依賴
  • 管理已導入的依賴
  • 在團隊中統一依賴的版本
  • 總結

 

前言

 

Swift Package Manager 出現之前,我們需要使用 CococaPods, Carthage 等包管理工具來管理依賴。

現在,我們可以直接使用 Xcode 來管理依賴。Xcode 內建了對 Git 版本控制系統的支持,我們可以輕鬆地使用 Xcode 中的 Swift Package Manager 來管理 公開的私有的 倉庫中的包。

 

添加依賴包

 

首先,找到添加依賴的菜單:

添加依賴的菜單

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

輸入依賴的名稱

可以看到,搜索結果有很多。我們可以根據 倉庫的名稱 還有 倉庫的主人 以及 倉庫的描述(fork, star的數量) 來找出我們真正期望的結果!當然,你也可以直接輸入倉庫的地址,然後進行下一步操作!

如果輸入的是倉庫地址,Xcode 就會校驗這個倉庫:

校驗倉庫

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

決定依賴的版本

選擇決定版本的規則:

決定版本的規則

目前有4種規則,都基於語義化版本(表示法:MAJOR.MINOR.PATCH ,即: 大版本.小版本.修復版本):

  • Up to Next Major,比如:輸入 a.b.c,依賴的版本就會在 a.b.ca+1.b.c 之間;
  • Up to Next Minor,比如:輸入 a.b.c,依賴的版本就會在 a.b.ca.b+1.0 之間;
  • Range,指定一個自定義的版本範圍;
  • Exact,指定一個固定版本;

當然,也可以選擇這個倉庫里的某個分支、提交記錄。然後,點擊下一步,Xcode 就會開始拉取依賴。

拉取依賴

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

選擇導入依賴的目標

導入完畢,最終效果如下:

導入完畢

 

在項目中使用依賴

 

如下所示,在項目中使用 Alamofire。如果可以編譯成功,則表示導入依賴成功。

import UIKit
import Alamofire

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        AF.request("//httpbin.org/get").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/project.workspace/xcshareddata/swiftpm/ 這個目錄生成一個 Package.resolved 文件。其中的內容大致如下:

{
  "object": {
    "pins": [
      {
        "package": "Alamofire",
        "repositoryURL": "//github.com/Alamofire/Alamofire.git",
        "state": {
          "branch": null,
          "revision": "64dd16a5f2099dd5400f5e6d1442dc5ab0c1d917",
          "version": "5.2.0"
        }
      }
    ]
  },
  "version": 1
}

把這個文件提交到 Git,可以幫助團隊成員統一依賴包的版本。

 

總結

 

整體來看,學習和使用 Swift Package Manager 都非常容易。而且,這是官方提供的工具,十分推薦使用!
你甚至不需要創建什麼文件,也不需要操作命令行!只需要有一個 Git 倉庫的名稱或者地址,然後就可以導入依賴了,非常簡單、高效!

朋友,行動起來吧!感受 Swift Package Manager 帶給你的快樂 ~

 

參考內容
Adding Package Dependencies to Your App

 

Ficow Shen原創文章,轉載請註明出處

 

Tags: