- CocoaPods 是什么?
CocoaPods 是開發(fā) OS X 和 iOS 應(yīng)用程序的一個第三方庫的依賴管理工具。利用 CocoaPods,可以定義自己的依賴關(guān)系 (稱作 pods),并且隨著時間的變化,以 及在整個開發(fā)環(huán)境中對第三方庫的版本管理非常方便
- CocoaPods 背后的理念主要體現(xiàn)在兩個方面
在工程中引入第三方代碼 會涉及到許多內(nèi)容。針對 Objective-C 初級開發(fā)者來說,工程文件的配置會讓 人很沮喪
在配置buildphases和linker flags過程中,會引起許多人為因素的 錯誤
CocoaPods 簡化了這一切,它能夠自動配置編譯選項
- CocoaPods的原理
- 它是將所有的依賴庫都放到另一個名為Pods項目中,然后 讓主項目依賴Pods項目,這樣,源碼管理工作都從主項目移到了Pods項目中
- Pods項目最終會編譯成一個名為libPods.a的文件,主項目只需要依賴這個.a 文件即可。
- 對于資源文件,CocoaPods提供了一個名為Pods-resources.sh的bash腳本, 該腳本在每次項目編譯的時候都會執(zhí)行,將第三方庫的各種資源文件復(fù)制到目 標(biāo)目錄中。
- CocoaPods通過一個名為Pods.xcconfig的文件來在編譯時設(shè)置所有的依賴和 參數(shù)。
- CocoaPods安裝
-
CocoaPods的安裝
安裝方式異常簡單 , Mac 下都自帶 ruby,使用 ruby 的 gem 命令即可下載安裝
- 更新gem(如果你的 gem 太老,一般我會選擇先更新)
sudo gem update --system - 更新ruby的軟件源
ruby 的軟件源 https://rubygems.org 因為使用的是亞馬遜的云服務(wù),所以被墻了,需要更新一下 ruby 的源,使用如下代碼將官方的 ruby 源替換成國內(nèi)淘寶的源:
- 先移除現(xiàn)有的源
gem sources --remove https://rubygems.org/
- 使用新的源
**gem sources -a https://ruby.taobao.org/ **
- 驗證新源是否替換成功
gem sources -l
> 如果上面都做完,說明cocoapods前期配置完畢。??梢允褂萌缦聝尚姓Z句來安裝cocoapods和設(shè)置索引倉庫了
- sudo gem install cocoapods
- pod setup(網(wǎng)速慢可以先替換索引再執(zhí)行,如下)
-
替換CocoaPods 的鏡像索引<注意>
當(dāng)?shù)谝淮螆?zhí)行pod setup時,cocoapods將會下載podspec索引文件到本地目錄~/.cocoapods/下,這個索引文件比較大,大概80M左右,更新比較慢..所以在執(zhí)行pod setup之前最好先替換更新下CocoaPods的鏡像索引。
一個叫 akinliu 的朋友在 gitcafe 和 oschina 上建立了 CocoaPods 索引庫的鏡像,因為 gitcafe 和 oschina 都是國內(nèi)的服務(wù)器,所以在執(zhí)行索引更新操作時,會快很多,如下操作可以將 CocoaPods 設(shè)置成使用 gitcafe 鏡像:
+ pod repo remove master
+ pod repo add master http://git.oschina.net/akuandev/Specs.git
+ pod repo update
即可使用 oschina 上的鏡像。
- 更新gem(如果你的 gem 太老,一般我會選擇先更新)
-
CocoaPods的使用
-
驗證是否安裝成功
pod --version
> 如果驗證成功,顯示版本號,如,**0.39.0**,說明可以安裝全部完成. > 如果顯示**-bash: po: command not found**,說明沒有裝好-
開始使用
使用時需要新建一個名為 Podfile 的文件,以如下格式,將依賴的庫名字依次列在文件中即可
platform :ios
pod 'AFNetworking', '~> 1.4'
'~> 1.4'表示安裝三方庫版本號,可以不寫,默認(rèn)為索引庫中最新版本
- 注意事項
1. 利用CocoPods管理類庫后, 以后打開項目就用xxxx.xcworkspace 打開,而不是 之前的.xcodeproj文件
2. 每次更改了Podfile文件,你需要重新執(zhí)行一次pod update命令。
3. CocoaPods在執(zhí)行pod install和pod update時,會默認(rèn)先更新一次CocoPods的 spec倉庫索引。使用--no-repo-update參數(shù)可以禁止其做索引更新操作
pod install --no-repo-update pod update --no-repo-update
4. 驗證框架是否支持cocoaPods
+ 終端指令
pod search MJRefresh
+ https://cocoapods.org,在線搜索驗證在線,能搜出說明支持。
5. cocoaPods隱藏目錄
> + 前往—>個人—>.cocoapods
> + .cocoapods/repos/master/Specs放著所有第三方庫的索引文件,如下圖技巧:如果master/Specs下載不成功,試著,手動拷貝這個目錄試試
6. cocoaPods插件
> cocoapods-xcode-plugin,cocoapods插件,管理cocoaPods框架.例如,有了這個插件就不用我們手動創(chuàng)建Profile文件了。
-
驗證是否安裝成功
-
卸載CocoaPods安裝
sudo gem uninstall cocoapods
-
回退到指定cocoapods版本(如0.39)
sudo gem install -n /usr/local/bin cocoapods --version 0.39
** cocoaPods遇到問題**
-
查看下載進(jìn)度
- 還有一點需要注意,
pod setup在執(zhí)行時,會輸出Setting up CocoaPods master repo,但是會等待比較久的時間。這步其實是 Cocoapods 在將它的信息下載到~/.cocoapods目錄下,如果你等太久,可以試著 cd 到那個目錄,用du -sh *來查看下載進(jìn)度。
- 還有一點需要注意,
執(zhí)行sudo gem install cocoapods,如下
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match
將執(zhí)行語句替換為sudo gem install -n /usr/local/bin cocoapods
(備注:蘋果系統(tǒng)升級 OS X EL Capitan造成)
[!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes in your editor of choice.
查看Podfile文件內(nèi)容是否編寫語法有誤!
