[圖片上傳失敗...(image-7bb50f-1526970520067)]
本人從事 iOS 開發(fā)已有2年多,用 swift 開發(fā)也有一年多的時間了,此前一直利用 cocopods 管理三方框架和依賴,最近了解到 Carthage 這個工具,本著學習的態(tài)度對這工具進行了了解.
官方地址: https://github.com/Carthage/Carthage
Carthage 簡介
- Carthage 類似于 CocoaPods目锭,為用戶管理第三方框架和依賴雄嚣,但不會自動修改項目文件和生成配置
- Carthage 是去中心化的依賴管理工具,安裝依賴時不需要去中心倉庫獲取 CocoaPods 所有依賴的索引,節(jié)省時間
- 對項目無侵入性寨辩,Carthage 設計上也比較簡單,利用的都是 Xcode 自身的功能违霞,開發(fā)者在創(chuàng)建依賴時亩码,相比 CocoaPods 也簡單許多
- Carthage 管理的依賴只需編譯一次,項目干凈編譯時茸塞,不會再去重新編譯依賴躲庄,節(jié)省時間
- 自動將第三方框架編程為 Dynamic framework( 動態(tài)庫 )
與 CocoaPods 無縫集成,一個項目能同時擁有 CocoaPods 和 Carthage - 缺點:
- 僅支持 iOS8 +
- 它只支持框架钾虐,所以不能用來針對 iOS 8 以前的系統(tǒng)版本進行開發(fā)
支持的 Carthage 安裝的第三方框架和依賴不如 CocoaPods 豐富 - 無法在 Xcode 里定位到源碼
- 安裝包的大小比用CocoaPods安裝的包大
安裝
使用 Homebrew 安裝 Carthage.
安裝 Homebrew
Install Homebrew:
[圖片上傳失敗...(image-e17f20-1526970520067)]獲取 Homebrew 最新版本
$ brew update
-
Homebrew 常用命令
- 搜索
$ brew search <packageName>
- 安裝
$ brew install <packageName>
- 卸載
$ brew uninstall <packageName>
- 查看已安裝包列表
$ brew list
- 查看包信息
$ brew info <packageName>
- 查看Homebrew版本
$ brew -v
- 搜索
安裝 Cartgage
- 安裝
$ brew install carthage
- 查看 Cartgage 版本
$ carthage version
- 更新 carthage 版本
brew upgrade carthage
- 刪除carthage舊版本
brew cleanup carthage
使用 Cartgage 安裝依賴
- 進入項目所在路徑
$ cd ~/路徑/項目文件夾
- 創(chuàng)建空的 Carthage 文件 Cartfile
$ touch Cartfile
- 使用 Xcode 打開 Cartfile 文件
$ open -a Xcode Cartfile
- 編輯 Carfile 文件(以Alamofire為例)
github "Alamofire/Alamofire" == 4.4.0
- 執(zhí)行更新命令,獲取類庫
$ carthage update --platform iOS
- 更新完成,檢查目錄結構
更新完成后項目根路徑會多出兩個文件(Cartfile.resolved,Cartfile)和一個文件夾(Carthage), Carthage下又有兩個文件夾(Checkouts 和 Build), Checkouts 從github獲取的源代碼, Build 編譯出來的Framework二進制代碼庫.
[圖片上傳失敗...(image-af2ef3-1526970520067)]
添加 Frameworks 到項目中
點擊'項目名' --> 'TARGETS' --> 'General', 在最下邊找到'Linked Framework and Libraries'.
[圖片上傳失敗...(image-277f29-1526970520067)]點擊'+' --> 'Add Other ..', 選擇'Carthage/Build/iOS/Alamofire.framework',點擊 'Open' 導入.
[圖片上傳失敗...(image-f6545-1526970520067)]選擇菜單選項 'Build Phases' --> 點擊 '+' --> 'New Run Script Phase', 添加以下命令:
/usr/local/bin/carthage copy-frameworks
[圖片上傳失敗...(image-762023-1526970520067)]點擊 'Input Files' 下的 '+',為每個 Framework 添加訪問路徑:
$(SRCROOT)/Carthage/Build/iOS/Alamofire.framework
[圖片上傳失敗...(image-39e2be-1526970520067)]在項目中 import 所需包就可以使用了.
import Alamofire
該博客同步發(fā)布于AndyCuiの博客