CocoaPods使用教程
一、什么是CocoaPods
每種語言發(fā)展到一個(gè)階段,就會(huì)出現(xiàn)相應(yīng)的依賴管理工具,例如 Java 語言的 Maven,nodejs 的 npm。隨著 iOS 開發(fā)者的增多,業(yè)界也出現(xiàn)了為 iOS 程序提供依賴管理的工具,它的名字叫做:CocoaPods。
CocoaPods項(xiàng)目的源碼 在 Github 上管理。該項(xiàng)目開始于 2011 年 8 月 12 日,經(jīng)過多年發(fā)展,現(xiàn)在已經(jīng)成為 iOS 開發(fā)事實(shí)上的依賴管理標(biāo)準(zhǔn)工具。開發(fā) iOS 項(xiàng)目不可避免地要使用第三方開源庫,CocoaPods 的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫的時(shí)間。
二、為什么要使用CocoaPods
在使用CocoaPods之前,開發(fā)項(xiàng)目需要用到第三方開源庫的時(shí)候,我們需要
- 把開源庫的源代碼復(fù)制到項(xiàng)目中
- 添加一些依賴框架和動(dòng)態(tài)庫
- 設(shè)置-ObjC,-fno-objc-arc等參數(shù)
- 管理他們的更新
在使用CocoaPods后,我們只需要把用到的開源庫放到一個(gè)名為Podfile的文件中,然后執(zhí)行pod install就可以了,Cocoapods就會(huì)自動(dòng)將這些第三方開源庫的源碼下載下來,并且為我們的工程設(shè)置好響應(yīng)的系統(tǒng)依賴和編譯參數(shù)。
三、CocoaPods的原理
CocoaPods的原理是將所有的依賴庫都放到另一個(gè)名為Pods的項(xiàng)目中,然后讓主項(xiàng)目依賴Pods項(xiàng)目,這樣,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中。Pods項(xiàng)目最終會(huì)編譯成一個(gè)名為libPods.a的文件,主項(xiàng)目只需要依賴這個(gè).a文件即可。
四、CocoaPods的安裝
CocoaPods可以方便地通過Mac自帶的RubyGems安裝。
執(zhí)行命令: sudo gem install cocoapods
五、Cocoapods的使用
隨便以一種方式新建一個(gè)名為Podfile的文件放到你的工程根目錄下(不能寫成別的名字,也可以自己在工程根目錄里面直接新建)
Podfile文件內(nèi)容的格式應(yīng)該如下:
# 代表注釋
# 將下面的注釋打開,注明你的開發(fā)平臺(tái)及版本, ‘9.0’不寫即為最新版本
# platform :ios, '9.0'
target '06-testCocoaPods' do
# 如果使用swift開始,或者動(dòng)態(tài)庫開發(fā),將下面的注釋打開
# use_frameworks!
# 在 do 和 end 中間添加需要導(dǎo)入的庫
pod 'AFNetworking', '~> 2.5.3' #('~> 2.5.3'為版本號(hào),忽略不寫即為最新版本)
pod 'SDWebImage' #代表使用最新版本
end
然后在Terminal進(jìn)入工程所在的根目錄(工程根目錄)中執(zhí)行 :
pod install
這樣,AFNetworking和SDWebImage就已經(jīng)下載完成并且設(shè)置好了編譯參數(shù)和依賴,以后使用的時(shí)候切記如下兩點(diǎn):
- 從此以后需要使用Cocoapods生成的 .xcworkspace文件來打開工程,而不是使用以前的.xcodeproj文件
- 每次更改了Podfile文件,都需要重新執(zhí)行一次pod update命令
查找第三方庫:
你如果不知道 cocoaPods 管理的庫中,是否有你想要的庫,那么你可以通過 pod search 命令進(jìn)行查找,以下是我用 pod search json 查找到的所有可用的庫:
可以在Terminal中輸入:
** pod search AFNetworking **
六、podfilelock
podfilelock
-
Podfile.lock文件最大得用處在于多人開發(fā)。對(duì)于沒有在Podfile中指定Pods依賴庫版本的寫法,如下:
pod 'SDWebImage'
該句話用于獲取當(dāng)前SDWebImage這個(gè)Pods依賴庫的最新版本。 - 當(dāng)團(tuán)隊(duì)中的某個(gè)人執(zhí)行完
pod install命令后,生成的Podfile.lock文件就記錄下了當(dāng)時(shí)最新Pods依賴庫的版本,這時(shí)團(tuán)隊(duì)中的其它人check下來這份包含Podfile.lock文件的工程以后,再去執(zhí)行pod install命令時(shí),獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。 - 如果沒有
Podfile.lock文件,后續(xù)所有用戶執(zhí)行pod install命令都會(huì)獲取最新版本的SDWebImage,這就有可能造成同一個(gè)團(tuán)隊(duì)使用的依賴庫版本不一致,這對(duì)團(tuán)隊(duì)協(xié)作來說絕對(duì)是個(gè)災(zāi)難! - 在這種情況下,如果團(tuán)隊(duì)想使用當(dāng)前最新版本的
SDWebImage依賴庫,有兩種方案:
更改Podfile,使其指向最新版本的SDWebImage依賴庫;
執(zhí)行pod update命令;
鑒于Podfile.lock文件對(duì)團(tuán)隊(duì)協(xié)作如此重要,我們需要將它添加到版本管理中。