CocoaPods簡介
每種語言發(fā)展到一個階段雏搂,就會出現(xiàn)相應的依賴管理工具抢埋,例如Java語言的Maven茬贵,nodejs的npm。隨著iOS開發(fā)者的增多沼头,業(yè)界也出現(xiàn)了為iOS程序提供依賴管理的工具爷绘,它的名字叫做:CocoaPods。
CocoaPods項目的源碼在Github上管理进倍。該項目開始于2011年8月12日土至,經(jīng)過多年發(fā)展,現(xiàn)在已經(jīng)成為iOS開發(fā)事實上的依賴管理標準工具猾昆。開發(fā)iOS項目不可避免地要使用第三方開源庫陶因,CocoaPods的出現(xiàn)使得我們可以節(jié)省設置和更新第三方開源庫的時間。
CocoaPods的安裝和使用介紹
安裝
安裝方式異常簡單, Mac下都自帶ruby垂蜗,使用ruby的gem命令即可下載安裝:
$sudo gem install cocoapods
$pod setup
但是在Mac OS X EL Capitan(10.11)中就會出現(xiàn)Operation not permitted - /usr/bin/pod的錯誤楷扬,當我遇到這個錯誤的時候我整個人是拒絕的,可是遇到問題還是得解決嘛贴见。后來發(fā)現(xiàn)了兩個解決方案烘苹。
方案一如果你的gem太老,可能也會有問題片部,可以嘗試用如下命令升級gem:
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
1 gem installed cocoapods
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
方案一中主要是將GEM的安裝路徑進行修改镣衡,將GEM的默認安裝路徑修改成了$HOME/Software/ruby這個目錄,然后再進行安裝档悠,最后將安裝路徑添加到PATH下廊鸥,這樣可以不用帶完整的路徑進行運行命令。
方案二
$ gem install cocoapods -n ~/Software/ruby
方案二中使用了gem的自帶參數(shù)-n—–即指明安裝的路徑辖所,如果要使用這種的話惰说,也需要將該路徑加入PATH下才可以不用帶完整的路徑進行運行命令。
個人建議是使用第一種缘回,將GEM的安裝路徑進行修改吆视。這樣不需要每次都用-n命令進行指定路徑。
sudo gem update --system
另外切诀,ruby的軟件源rubygems.org因為使用的亞馬遜的云服務揩环,所以被墻了,需要更新一下ruby的源幅虑,如下代碼將官方的ruby源替換成國內(nèi)淘寶的源:
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
gem sources -l
還有一點需要注意丰滑,pod setup在執(zhí)行時,會輸出Setting up CocoaPods master repo倒庵,但是會等待比較久的時間褒墨。這步其實是Cocoapods在將它的信息下載到~/.cocoapods目錄下,如果你等太久擎宝,可以試著cd到那個目錄郁妈,用du -sh *來查看下載進度。你也可以參考本文接下來的使用cocoapods的鏡像索引一節(jié)的內(nèi)容來提高下載速度绍申。
使用CocoaPods
使用時需要新建一個名為Podfile的文件噩咪,以如下格式顾彰,將依賴的庫名字依次列在文件中即可
platform :iospod'JSONKit','~> 1.4'
pod'Reachability','~> 3.0.0
'pod'ASIHTTPRequest'
pod'RegexKitLite'
然后你將編輯好的Podfile文件放到你的項目根目錄中,執(zhí)行如下命令即可:
cd"your project home"pod install
現(xiàn)在胃碾,你的所有第三方庫都已經(jīng)下載完成并且設置好了編譯參數(shù)和依賴涨享,你只需要記住如下2點即可:
使用CocoaPods生成的.xcworkspace 文件來打開工程,而不是以前的.xcodeproj 文件仆百。
每次更改了Podfile文件厕隧,你需要重新執(zhí)行一次pod update命令。
查找第三方庫
你如果不知道cocoaPods管理的庫中俄周,是否有你想要的庫吁讨,那么你可以通過pod search命令進行查找,以下是我用pod search json查找到的所有可用的庫:
關于.gitignore
當你執(zhí)行pod install之后峦朗,除了Podfile外建丧,CocoaPods還會生成一個名為Podfile.lock的文件,你不應該把這個文件加入到.gitignore中波势。因為Podfile.lock會鎖定當前各依賴庫的版本茶鹃,之后如果多次執(zhí)行pod install不會更改版本,要pod update才會改Podfile.lock了艰亮。這樣多人協(xié)作的時候闭翩,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致。
CocoaPods的這篇官方文檔也在What is a Podfile.lock一節(jié)中介紹了Podfile.lock的作用迄埃,并且指出:
This file should always be kept under version control.
解決cocoapods 更新慢的問題
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update