一、什么是cocoapods
語言發展到一定的地步就會出現相應的依賴管理工具,就像Java語言的Maven,nodejs的npm。iOS發展至今也有依賴管理工具:cocoapods。
二、為什么要使用cocoapods
在使用CocoaPods之前,開發項目需要用到第三方開源庫的時候,我們需要
1.把開源庫的源代碼復制到項目中
2.添加一些依賴框架和動態庫
3.設置-ObjC,-fno-objc-arc等參數
4.管理他們的更新
在使用CocoaPods后,我們只需要把用到的開源庫放到一個名為Podfile的文件中,然后執行pod install就可以了,Cocoapods就會自動將這些第三方開源庫的源碼下載下來,并且為我們的工程設置好響應的系統依賴和編譯參數。
三、cocoapods的原理
CocoaPods的原理是將所有的依賴庫都放到另一個名為Pods的項目中,然后讓主項目依賴Pods項目,這樣,源碼管理工作都從主項目移到了Pods項目中。Pods項目最終會編譯成一個名為libPods.a的文件,主項目只需要依賴這個.a文件即可。
四、cocoapods的安裝
打開Terminal(Mac電腦自帶的終端),然后按照以下提示操作即可:
1.設置ruby的軟件源
這是因為ruby的軟件源rubygems.org因為使用亞馬遜的云服務,被我天朝屏蔽了,需要更新一下ruby的源,過程如下:
gem sources -l #(查看當前ruby的源)
gem sources --remove https://rubygems.org/ #(移除當前ruby的源)
gem sources -a https://ruby.taobao.org/ #(設置當前ruby的源為我天朝的)
gem sources -l #(再次查看當前ruby的源)
如果Terminal輸出:
*** CURRENT SOURCES ***
就證明ruby的軟件源已經設置OK了。
2.設置gem為最新版本
如果gem太老,可以嘗試用如下命令升級gem:
在Terminal輸入以下命令:
sudo gem update --system
3.執行安裝cocoapods命令
注意:OS X 10.11 升級,雖然官方聲稱只是一個小的升級,但對于開發者而言,cocoapods需要重新安裝,但按照以前的安裝方式,在Terminal輸入以下命令:
//sudo gem install cocoapods
如果報以下錯誤:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
sudo gem install cocoapods -V
解決方案:
sudo gem install -n /usr/local/bin cocoapods
pod setup
還有一點需要注意,pod setup在執行時,會輸出Setting up CocoaPods master repo,但是會等待比較久的時間。這步其實是 Cocoapods 在將它的信息下載到 ~/.cocoapods目錄下。
安裝成功后,會看到setup completed
五、cocoapods的使用
在終端中進入(cd命令)你項目所在目錄,然后在當前目錄下,利用vim創建Podfile
$vim Podfile
然后在Podfile文件中輸入以下文字:
platform:ios, '8.0'
use_frameworks!
#inhibit_all_warnings!
target 'ProjectName' do #ProjectName必須是項目名稱
pod 'AFNetworking'
#...
end
添加完所需要的第三方庫,然后保存退出:
:wq
退出之后執行命令
$pod install
等到執行完成之后,關閉項目,重新打開ProjectName.xcworkspace文件即可。
關于Podfile.lock
當你執行pod install之后,除了 Podfile 外,CocoaPods 還會生成一個名為Podfile.lock的文件,Podfile.lock 應該加入到版本控制里面,不應該把這個文件加入到.gitignore中。因為Podfile.lock會鎖定當前各依賴庫的版本,之后如果多次執行pod install 不會更改版本,要pod update才會改Podfile.lock了。這樣多人協作的時候,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致
附:如何使用CocoaPods的鏡像索引
所有項目的Podspec文件都托管在https://github.com/CocoaPods/Specs,
第一次執行pod setup時,CocoaPods會將這些podspec索引文件更新到本地的~/.cocoapods目錄下,
這個索引文件比較大,所以第一次更新時非常慢.
友好人士在國內的服務器建立了Cocoapods索引庫的鏡像,
所以執行索引跟新操作時候會快很多.具體操作方法如下:
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
這是使用gitcafe上的鏡像,將以上代碼中的 https://gitcafe.com/akuandev/Specs.git
替換成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的鏡像。