Carthage 的使用前服用
Carthage 相對於 CocoaPods,有以下優勢:
- 不需要每次都重新編譯第三方 framework,節省時間
- 去中心化,每次配置更新環境,只需要去更新具體的 framework,節省時間
- 非侵入性,不會修改專案配置和結構
- 可以與 CocoaPods 混用
第一步安裝 brew
安裝 carthage 前需要先安裝 brew,官網有詳細的安裝步驟。
或者你可以打開 terminal 輸入以下指令
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝 carthage
// 建議先把 brew 的版本更新到最新版
brew update// 安裝 carthage
brew install carthage
進入專案所在的根目錄,然後建立一個空的 Cartfile 文件
touch Cartfile
打開 Cartfile 文件後,加入你要安裝的 framework
github "SnapKit/SnapKit" ~> 4.0.0
保存並關閉 Cartfile 文件,以下命令擇一,回到 terminal 執行
/只為 iOS 編譯 framework
carthage update --platform iOS//不指定平台,編譯全平台的 framework
carthage update
添加 Frameworks 到專案中
找到 Xcode -> Targets -> Build Phases -> Link Binary With Libraries,打開 Carthage 文件夾,進入 Build/iOS ,拖曳 SnapKit.framework 到 Xcode 的 Link Binary With Libraries 中

在 Build Phases 添加一個新的 Run Script,並添加以下命令
/usr/local/bin/carthage copy-frameworks
點擊 Input Files 下面的 + 號,添加 framework 的路徑

點擊 Output Files 下面的 + 號,$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/SnapKit.framework
加上這個後,只在 framework 改變的情況下,才會跑一遍 Copy,可以加快專案的編譯速度

command + B 在編譯這個專案,就大功告成啦~~~~
Cartfile 格式说明
Dependency origin
Carthage 支持兩種類型的 origin,一個是github
,另一個是git
。
github
表示依賴庫來自於 github,格式為Username/ProjectName
git
關鍵字後面跟的是資料庫的地址,可以是遠端的 URL 地址,使用git://, http://, ssh://
,或者是本地資料庫地址。
Dependency Version
告诉 Carthage 使用哪個版本,這是可選的,不寫默認使用最新版本
== 1.0 表示使用 1.0 版本
>= 1.0 表示使用 1.0 或更高的版本
~> 1.0 表示使用版本 1.0 以上但是低於 2.0 的最新版本
命令執行完後,會生成一個 Carthage 文件夾和 Cartfile.resolved 文件。
打開 Carthage 文件夾後會看到兩個文件夾 Build 和 Checkouts。
- Cartfile.resolved:需要被提交到 repo,它有助於其他開發者使用和你相同版本的套件。
- Build : 裡面放的是安裝的套件
- Checkouts: 裡面則是直接將遠端 repo 直接 clone 到本地,所以不需要在不同的專案中對同一個套件 clone 多次
更新指定的 framework
carthage update Alamofire --platform iOS