相對于coacopoads優(yōu)點:輕量級斧散,靈活玻驻,不破壞項目原有結構合愈;缺點:只負責下載與更新,具體如何使用需要開發(fā)者自己設置。
開始:
1佛析、使用Homebrew 下載cathage
brew update
brew install carthage
2益老、使用
和創(chuàng)建cocoapoads 文件類似,你需要先切換到項目路徑
(1) cd 你的項目路徑 比如這是我的項目: ?cd?/Users/jinshi/Desktop/swift/MoYaWebTest/ ?注意cd后面有空格
?(2)創(chuàng)建一個Carthage 文件,并打開:
vim Cartfile
? ? (3)添加依賴庫(遠程和本地都可以)
打開Xcode:Preference:Locations ?確保你的Command line tools 已經選擇(目的是為了下一步 成功生成Build文件)
(4)下載/獲得第三方庫
carthage update --platform iOS --use-submodules
安裝完成后手動打開的你項目文件夾寸莫,會有一個叫Cathage的文件夾捺萌,Build 和Checkouts 文件夾,而在Build/iOS下的.framework文件需要你拖動到項目中的Build Phases ->Link Binary With Libraries中膘茎。導入就可以去使用了桃纯。
注意點:
Cartfile.resolved:這個文件是輔助Cartfile的,需要被提交到版本庫中披坏,它有助于其他開發(fā)者使用和你相同版本的第三方庫态坦。
Build:包含每一個第三方庫創(chuàng)建生成的framework,可以被集成到項目中棒拂,每一個framework都是依賴于源文件或者GitHub上的Releases版本伞梯。
Checkouts:這里包含的是轉換成framework之前的源文件,Carthage有自己的緩存機制帚屉,所以不需要在不同的項目中對同一個的第三方庫clone多次谜诫。
對于是否把Build和Checkouts文件夾提交到版本庫取決于你,這不是必須的攻旦。如果提交的話喻旷,其他人clone了你的資料庫就可以使用這兩個文件中的內容
????carthage update 會暴力無腦全體覆蓋? ? ,一旦你或者你的開發(fā)小伙伴改動了某個庫牢屋,所以這個命令就會將你的修改沖刷掉且预,不要改變Checkouts文件夾中的內容,因為如果使用carthage update或者carthage checkout命令的話烙无,這個文件夾中的內容可以隨時被復寫辣之,那么改動工作就白費了。如果一定要改動的話皱炉,在使用carthage update命令時怀估,可以使用--use-submodules選項。如果加上這個選項的話合搅,Carthage在添加每個依賴庫的時候就會作為一個子模塊多搀。
如果其他人想要使用你的工程,你不需要在你的代碼中提交已經編譯好的framework灾部,他們需要在check out你的工程之后執(zhí)行carthage bootstrap命令康铭;bootstrap命令會根據(jù)Cartfile.resolved文件下載和編譯依賴庫的精確版本。另一方面赌髓,carthage update命令會更新項目中的第三方庫的最新的編譯版本从藤,這是不可取的催跪。