0颤殴、CocoaPods是什么?
CocoaPods是開發(fā)OS X和iOS應(yīng)用程序的一個(gè)第三方庫(kù)的依賴管理工具杭跪。利用CocoaPods,可以定義自己的依賴關(guān)系(稱作pods),并且隨著時(shí)間的變化,以及在整個(gè)開發(fā)環(huán)境中對(duì)第三方庫(kù)的版本管理非常方便通惫。
CocoaPods背后的理念主要體現(xiàn)在兩個(gè)方面茂翔。
首先,在工程中引入第三方代碼會(huì)涉及到許多內(nèi)容。針對(duì)Objective-C初級(jí)開發(fā)者來說,工程文件的配置會(huì)讓人很沮喪履腋。在配置buildphases和linker flags過程中,會(huì)引起許多人為因素的錯(cuò)誤珊燎。CocoaPods簡(jiǎn)化了這一切,它能夠自動(dòng)配置編譯選項(xiàng)。
其次,通過CocoaPods,可以很方便的查找到新的第三方庫(kù)遵湖。當(dāng)然,這并不是說你可以簡(jiǎn)單的將別人提供的庫(kù)拿來拼湊成一個(gè)應(yīng)用程序悔政。它的真正作用是讓你能夠找到真正好用的庫(kù),以此來縮短我們的開發(fā)周期和提升軟件的質(zhì)量。
CocoaPods的原理: ?它是將所有的依賴庫(kù)都放到另一個(gè)名為Pods項(xiàng)目中,然后讓主項(xiàng)目依賴Pods項(xiàng)目,這樣,源碼管理工作都從主項(xiàng)目移到了Pods項(xiàng)目中:
1延旧、Pods項(xiàng)目最終會(huì)編譯成一個(gè)名為libPods.a的文件,主項(xiàng)目只需要依賴這個(gè).a文件即可谋国。
2、對(duì)于資源文件,CocoaPods提供了一個(gè)名為Pods-resources.sh的bash腳本,該腳本在每次項(xiàng)目編譯的時(shí)候都會(huì)執(zhí)行,將第三方庫(kù)的各種資源文件復(fù)制到目標(biāo)目錄中迁沫。
3芦瘾、CocoaPods通過一個(gè)名為Pods.xcconfig的文件來在編譯時(shí)設(shè)置所有的依賴和參數(shù)。
1集畅、Cocoapods的安裝
1.先升級(jí) ?Gem:
sudo gem update --system
2.切換 ? cocoapods的數(shù)據(jù)源 【先刪除旅急,再添加,查看】
? ?gem sources --remove https://rubygems.org/
? gem sources -a https://ruby.taobao.org/
? gem sources -l
3.安裝 ?cocoapods sudo gem install cocoapods
4.將Podspec文件托管地址從github切換到國(guó)內(nèi)的oschina 【先刪除牡整,再添加藐吮,再更新】(以下不同顏色是用來區(qū)分不同的命令)
pod repo remove master
pod repo add master http://git.oschina.net/akuandev/Specs.git
pod repo add master https://gitcafe.com/akuandev/Specs.git pod repo update
5.設(shè)置pod倉(cāng)庫(kù) ? ?pod setup
6.測(cè)試 【如果有版本號(hào),則說明已經(jīng)安裝成功】 ? ?pod --version
7.利用 cocoapods來安裝第三方框架
? ? 7-1 進(jìn)入要安裝框架的項(xiàng)目的.xcodeproj同級(jí)文件夾
? ? 7-2 在該文件夾中新建一個(gè)文件podfile
? ? 7-3 在文件中告訴cocoapods需要安裝的框架信息 a.該框架支持的平臺(tái) b.適用的iOS版本 c.框架的名稱 d.框架的版本
8.安裝 ? ?pod install --no-repo-update ? ? ?pod update --no-repo-update
2逃贝、終端如何使用cocopods:
步驟:
0. cd 項(xiàng)目路徑 (切換到項(xiàng)目的.xcodeproj同級(jí)文件夾)
1. touch podfile/pod init生成podfile文件 ?(創(chuàng)建podfile,用來保存框架的名稱,會(huì)去加載指定框架)(補(bǔ)充區(qū)別:touch podfile生成空文件谣辞,pod init生成了模板,建議使用pod init)
2. pod search 框架名稱 (搜索框架)
3. open podfile ?(打開 podfile 文件/也可以找到文件直接雙擊打開)
4. 把框架名稱以及版本號(hào)導(dǎo)入podfile文件 (記得保存Ctrl + S)
5.
? ?5.1 ?pod update ?--verbose?--no-repo-update /?pod update ?--no-repo-update(安裝)
? ? 5.2 ?pod install ?--verbose?--no-repo-update /?pod install ?--no-repo-update
注意:
1.利用CocoPods管理類庫(kù)后,以后打開項(xiàng)目就用xxxx.xcworkspace打開,而不是之前的.xcodeproj文件
2.每次更改了Podfile文件,你需要重新執(zhí)行一次pod update命令沐扳。
3.關(guān)于.gitignore 當(dāng)你執(zhí)行pod install之后,除了Podfile外,CocoaPods還會(huì)生成一個(gè)名為Podfile.lock的文件,你不應(yīng)該把這個(gè)文件加入到.gitignore中泥从。因?yàn)镻odfile.lock會(huì)鎖定當(dāng)前各依賴庫(kù)的版本,之后如果多次執(zhí)行pod install不會(huì)更改版本,要pod update才會(huì)改Podfile.lock了。這樣多人協(xié)作的時(shí)候,可以防止第三方庫(kù)升級(jí)時(shí)造成大家各自的第三方庫(kù)版本不一致沪摄。
4. CocoaPods在執(zhí)行pod install和pod update時(shí),會(huì)默認(rèn)先更新一次CocoPods的spec倉(cāng)庫(kù)索引躯嫉。使用--no-repo-update參數(shù)可以禁止其做索引更新操作
pod install --no-repo-update h
pod update --no-repo-update
3纱烘、終端命令使用cocoPods演示:
tip(提示): ? open podfile之后 寫入podfile文件的內(nèi)容之后如下(記得保存Ctrl + S)
4、Xcode可以直接使用cocoPods:
1.借助別人寫的第三方框架cocoapods-xcode-plugin-master祈餐,首先去github下載這個(gè)框架(網(wǎng)址在后面)
2.下載好之后解壓擂啥,用Xcode打開CocoaPods.xcworkspace
3.運(yùn)行CocoaPods.xcworkspace ? 之后,關(guān)閉Xcode(Ctrl + Q)注意是退出Xcode帆阳,不只是關(guān)閉當(dāng)前CocoaPods.xcworkspace的項(xiàng)目哺壶,然后再重新打開Xcode(有提示: load Bundle),安裝成功按照操作就會(huì)有如下界面:
四:參考文獻(xiàn)
1蜒谤、用CocoaPods做iOS程序的依賴管理:(這個(gè)可能無法訪問界面):www.devtang.com
2山宾、CocoaPods最佳實(shí)踐: ?Sina Visitor System
3、極速化:CocoaPods:http://www.cocoachina.com/ios/20150123/11002.html
五资锰、安裝cocoapods時(shí)出現(xiàn)錯(cuò)誤
ERROR: ?While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/pod
解決辦法:sudo gem install -n /usr/local/bin cocoapods
參考資料:
http://segmentfault.com/q/1010000002926243
治標(biāo)不治本,下一次還會(huì)再出現(xiàn)阶祭,永久解決辦法:
下載命令行工具:
下載過后绷杜,運(yùn)行命令行:brew install ruby
http://stackoverflow.com/questions/33015875/operation-not-permitted-usr-bin-update-rubygems
附:CocoaPods.xcworkspace的github下載地址:GitHub - heyuan110/PodsRepertory: cocopods repertory
Ruby 升級(jí):
http://t.zoukankan.com/ivonne-p-5705264.html
Homebrew 安裝:
https://zhuanlan.zhihu.com/p/90508170