Carthage 基本使用方法

Carthage 使用流程

  1. 創(chuàng)建一個文件,名為 Cartfile, 在其中列出項目中需要使用到的 framework
  2. 運行 Carthage, 這將會從遠端拉取 Cartfile 中列出的項目,并構(gòu)建對應的 framework
  3. 講構(gòu)建后的二進制代碼 .framework 文件拖進 Xcode 項目

雖然 Carthage 構(gòu)建所有需要的依賴并生成對應的二進制 framework, 但用戶仍然保持對項目文件結(jié)構(gòu)以及工程構(gòu)建設(shè)置的控制

Carthage 并不會修改用戶的工程文件和構(gòu)建設(shè)置

安裝 Carthage

3 種方法可供選擇

  • Installer: 通過下載并運行 Carthage.pkg 文件進行安裝

  • Homebrew: 使用 Homebrew 安裝

    brew update
    
    brew install carthage
    

    若之前安裝過了 Carthage 的二進制版本,應先刪除 /Library/Frameworks/CarthageKit.framework

  • 源碼:clone 主分支代碼,運行 make install (這需要 Xcode 8.3, Swift 3.1)

將 framework 添加到項目中

Carthage 只支持動態(tài) framework, 而這只能在 iOS 8 或以上的版本使用(macOS 隨意)

對于 iOS, tvOS, watchOS

  1. 創(chuàng)建一個文件,名為 Cartfile, 在其中列出項目中需要使用到的 framework

  2. 運行 carthage update --platform iOS, 這將會拉取所有的依賴到 ??Carthage/Checkouts, 然后構(gòu)建或下載一個 pre-compiled 的 framework

  3. 在項目的 targets -> General -> Linked Frameworks and Libraries 中,將每一個需要的 framework 從 ??Carthae/Build 中拖放到其中

  4. targets -> Build Phases -> + -> New Run Script Phase, 創(chuàng)建一個運行腳本

    /usr/local/bin/carthage copy-frameworks
    
  5. 在 Input Files 中添加要使用到的 framework 的路徑

    $(SRCROOT)/Carthage/Build/iOS/XXX.framework
    
  6. 在 Output Files 中添加 framework 復制的目的路徑

    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/XXX.framework
    

    當 output files 配合 input files 一起使用時,Xcode 只會在 input files 發(fā)生了改變或 output files 找不到時才會運行腳本。這意味著,當沒有使用 Carthage 重新構(gòu)建 framework 時, dirty build 會運行得更快

腳本的作用:

是應對應用提交到 App Store 時的一個 bug. 這個 bug triggered by universal binaries and ensures that necessary bitcode-related files and dSYMs are copied when archiving.

運行一個已經(jīng)使用 Carthage 的項目

運行命令

carthage bootstrap

更新 framework

當修改了 Cartfile, 或者想將 frameworks 更新到最新版本,運行命令

carthage upadte xxx

或者,只想更新特定的依賴,那就在 update 后面加上它們的名字吧

carthage update xxx yyy

Cartfile 寫法

關(guān)于源 (origin) 的問題

目前 Carthage 支持 3 種源:

  • GitHub 上的 repositories
  • Git 的 repositories
  • 通過 https 協(xié)議傳送的二進制 frameworks

使用 GitHub repositories

使用 github 關(guān)鍵字

github "ReactiveCocoa/ReactiveCocoa" # GitHub.com
github "https://enterprise.local/ghe/desktop/git-error-translations" # GitHub Enterprise

使用 Git repositories

使用 git 關(guān)鍵字

git "https://enterprise.local/desktop/git-error-translations2.git"

二進制 frameworks

使用 binary 關(guān)鍵字,并且 URL 使用的是 https 協(xié)議

binary "https://my.domain.com/release/MyFramework.json"

關(guān)于這個 json 文件的具體格式,直接看原文,目前本人用到的不多

關(guān)于 framework 版本

Carthage 支持 framework 不同的版本指定

  • >= 1.0 版本 1.0 或以上
  • ~> 1.0 大版本是 1, 即 1.0 <= version < 2.0
  • == 1.0 正是版本 1.0
  • "分支名稱 或 標簽名稱 或 提交版本號"

若不指定 framework 的版本號,則默認抓取最新版

References

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容