Carthage 簡介
- Carthage 類似於 CocoaPods,爲用戶管理第三方框架和依賴,但不會自動修改項目文件和生成配置
- Carthage 是去中心化的依賴管理工具,安裝依賴時不需要去中心倉庫獲取 CocoaPods 所有依賴的索引,節省時間
- 對項目無侵入性,Carthage 設計上也比較簡單,利用的都是 Xcode 自身的功能,開發者在創建依賴時,相比 CocoaPods 也簡單許多
- Carthage 管理的依賴只需編譯一次,項目乾淨編譯時,不會再去重新編譯依賴,節省時間
- 自動將第三方框架編程爲 Dynamic framework( 動態庫 )
- 與 CocoaPods 無縫集成,一個項目能同時擁有 CocoaPods 和 Carthage
- 缺點:
- 僅支持 iOS8 +
- 它只支持框架,所以不能用來針對 iOS 8 以前的系統版本進行開發
- 支持的 Carthage 安裝的第三方框架和依賴不如 CocoaPods 豐富
- 無法在 Xcode 裏定位到源碼
- 安裝包的大小比用CocoaPods安裝的包大
安裝 Homebrew
可以使用 Homebrew 來安裝 Carthage
1、安裝 Homebrew
將以上命令粘貼至終端
腳本會在執行前暫停,並說明將它將做什麼。高級安裝選項在 這裏(需要OSX 10.5+)
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安裝完 homebrew 後執行下面命令,獲取最新版本【可選】
$ brew update
注意:如果遇到 Error: The /usr/local directory is not writable.錯誤,就執行以下命令 sudo chown -R $(whoami):admin /usr/local,再更新。
其他 brew 命令
brew install git // 使用brew安裝軟件 brew uninstall wget // 使用brew卸載軟件 brew search /wge*/ // 使用brew查詢軟件,其中/wge*/是個正則表達式,需要包含在/中 brew list // 列出已安裝的軟件 brew home // 用瀏覽器打開brew的官方網站 brew info // 顯示軟件信息 brew deps // 顯示包依賴
2、安裝 Carthage
$ brew install carthage
安裝 Carthage 之後,可查看版本
carthage version // 目前的版本號爲:0.20.1
3、使用 Carthage 安裝依賴
進入項目所在文件夾
cd ~/路徑/項目文件夾
創建一個空的 Carthage 文件 Cartfile
touch Cartfile
使用 Xcode 打開 Cartfile 文件
open -a Xcode Cartfile
編輯 Cartfile【可手動打開進行編輯】
github "Alamofire/Alamofire" == 4.4.0
執行更新命令
$ carthage update --platform iOS
更新成功後,項目文件夾中會多出三個文件
- cartfile
- Cartfile.resolved
- Carthage/
- Build/
- Checkouts/
Carthage 會 clone 文件中對應的 git 第三方庫,把每一個第三方庫編譯成二進制文件的 framework 文件。
其中 “–platform iOS” 命令是可選的,作用是保證只爲 iOS 編譯framework,如果不指定平臺,會爲全平臺編譯 framework 文件。如果想要了解更多的命令,可以運行 carthage help update查看。
4、添加 Frameworks 到項目中
- 01 - 點擊”項目名稱”–> “TARGETS” –> “General”,在最底部找到 “Linked Frameworks and Libraries”
- 02 - 點擊 + 號,選擇左下角 Add Other… 按鈕,選擇項目下 Carthage/Build/iOS/Alamofire.framework 文件,點擊 Open 加入到項目中
目的是告訴Xcode鏈接你的app到這個 framework,允許你在代碼中使用
- 03 - 下一步選擇菜單上的 Build Phases,點擊左上角 + 號添加一個新的 Run Script,並添加以下命令:
/usr/local/bin/carthage copy-frameworks
- 04 - 點擊 Input Files 下面的 + 號爲每一個 framework 添加訪問路徑
carthage copy-frameworks 命令剔除了額外的框架
$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
- 05 - Import 框架名到控制器,Command + B 編譯項目,如果成功,就可以使用了
import Alamofire