對于一個項目從生產力的角度來說,我們都不能保證自己寫的每一行代碼是否在某種程度上重復的造"輪子".換言之對于通用的功能,如果有更好"輪子"可以用來替代和供我們選擇,那么管理好第三方包在項目中引用遠比要重復造"輪子"要重要的多.
每種語言發展到一定階段都會產生一定依賴管理工具,例如C#中Nuget[讀作:New-Get],java中常用的Maven等.而對于iOS平臺來說則不得不提到CocoaPods.該項目從2011年8月12日開始至今,經過數年的發展,雖然現在依然很多第三方依賴管理工具可以選擇,事實上CocoaPods儼然已經成為iOS依賴管理的標準工具.從Github上針對iOS分類下富有影響力排名的項目對CocoaPods支持力度可見一斑.well,既然對于這個貌似沒的選的工具,學會如何使用它就好.
安裝CocoaPods
CocoaPods是基于Ruby環境運行的,當然Mac自身環境是自帶Ruby和Rvm的.至于如何安裝Ruby請自行Google,這里不再贅述.首先打開終端檢查Rvm和Ruby版本:
二者都是latest版本.首先通過如下命令安裝:
如果你發現突然很久沒有反應,問題原因也很簡單,哪怕這是一個全球流行依賴管理工具依然避免被墻的命運,所以解決方案有二,自備VPN掛上,或者通過淘寶的Ruby鏡像來訪問CocoaPods,這個就需要你對gem包來源[https://rubygems.org]更換成淘寶的,操作如下:
更換完成后查看是否更換成功:
更換成功.重新安裝執行CocoaPods安裝命名,過幾十秒順利安裝成功.
引用第三方框架
構建項目時難免會用到很多第三方的庫或者框架,類似對iOS常見的AFNetworking網絡層封裝庫等,大多情況是我們一個項目可能會使用多個[多則達20也是常見的],對于多個第三方庫依賴管理和自身庫版本更新維護就會很大的工作量,所以至于手工拷貝源碼到工程的方式,雖然操作簡單卻極容易出錯,其實完全可以采用CocoaPods工具把這塊功能管理做成自動化,盡量減少手工操作.
類似現在要在空的工程[CocoapodsDemo]中引入自動布局框架Masonry,一般在引入之前我們需要驗證一下當前是否支持CocoaPods:
采用pod Search命令很快就能檢索到對應框架版本結果.這說明Masonry是支持CocoaPods.而對于空白的工程來說,首先要加入對CocoaPods的支持,第一步需要創建一個Podfile文件(文件名不能變更,且無任何后綴).其實這個文件功能跟Visual Studio 中依賴包管理工具-Nuget中自帶Xml格式包描述文件是一樣的功能,它一般用來描述當前工程使用那些類庫,支持系統版本,以及目前項目引用類庫版本等信息.
首先打開終端進入項目根目錄[.xcodeproj文件所在文件目錄],通過Vim命名創建Podfile文件:
在Podfile文件輸入如下信息:
pod 'Masonry'
注意這里輸入信息,一般情況來自項目類庫安裝說明文檔,類似Masonry在Github主頁中關于采用CocoaPods安裝方法就是如上一段字符.有的類庫附帶有系統版本和平臺支持說明. 類庫名字后面也可能會指定固定版本號.具體情況根據類庫自身說明和項目需要的類庫版本自行決定.
輸入完成,按下"ESC"鍵,退回到命令行模式,在Vim采用:
:wq
命名強制保存退出.這時候你會發現項目根目錄中,會出現一個名字為Podfile的文件,而且文件內容就是剛剛輸入的. 這里值得注意的是,一般情況Podfile文件應該和工程文件.xcodeproj在同一個目錄下.
建立Podfile文件成功后,這個時候執行pod install就開始安裝Masonry框架到項目中來了:
其實執行pod install命名時,CocoaPods會讀取Podfile找到相關類庫下載并自動集成到項目中來.當開始執行安裝時你大多情況都會發現安裝流程會一直停留在:
Analyzing dependencies
這一項好久沒有動,這個問題原因是因為首次使用pod install命名時,系統也會默認執行pod setup.命令執行時會升級CocoaPods的spec倉庫.關于Pod Setup具體坐了那些事情詳見這里.卡在這里不動原因也是毋庸置疑的,Setup流程引用資源被墻掉了.針對這個情況除了掛上靠譜VPN,在墻內還有兩種比較靠譜方式可以解決:
自行下載Setup文件:
因為CocoaPods托管在github上,可以自行下載Setup所需要的文件,只要將文件夾名改為master,并將其拖到/Users/用戶名/.cocoapods/repos目錄下即可.
命令行忽略:
其實在pod install執行命令時可以設置相應參數,規避每次執行Setup更新spec倉庫的操作:
pod install --verbose --no-repo-update
只要能夠保證正常聯通github基本上稍等一段時間就能順利安裝成功.安裝成功后留意最后有一句提示的話:
[!] From now on use `CocoaPodsDemo.xcworkspace`.
意思是:因為引入新的Masonry框架,以后打開項目就用 CocoaPodsDemo.xcworkspace 打開,而不是之前的.xcodeproj文件.
重新打開空白的CocoaPodsDemo工程看一下項目結構與以前做一下對比:
你會發現Masonry自動布局框架已經自動安裝到項目工程中來.
同理如果我們在第三方平臺類似github看到比較好框架,或者要更新已有項目框架版本,只需要找到對應的Podfile執行對應update操作就能很好管理項目中使用到第三方庫.
Pretty Easy.