-
前言
-
什么是Cocoapods斧账?埋市?冠桃?
答:在iOS開(kāi)發(fā)中勢(shì)必會(huì)用到一些第三方依賴庫(kù),比如大家都熟悉的ASIHttpRequest道宅、AFNetworking食听、JSONKit等。使用這些第三方類庫(kù)能極大的方便項(xiàng)目的開(kāi)發(fā)污茵,但是碳蛋,集成這些依賴庫(kù)需要我們手動(dòng)去配置,例如集成ASIHttpRequest庫(kù)時(shí)除了加入源碼以外還需要手動(dòng)去添加一些系統(tǒng)框架省咨,比如CFNetwork、MobileCoreServices等玷室,如果這些第三方庫(kù)發(fā)生了更新零蓉,還需要手動(dòng)去更新項(xiàng)目。這就顯得非常麻煩穷缤。有麻煩自然有解決辦法敌蜂,CocoaPods就是為了解決這個(gè)問(wèn)題而生的。通過(guò)CocoaPods津肛,我們可以將第三方的依賴庫(kù)統(tǒng)一管理起來(lái)章喉,配置和更新只需要通過(guò)簡(jiǎn)單的幾行命令即可完成,大大的提高了實(shí)際開(kāi)發(fā)中的工作效率,使我們的主要精力集中到更重要的事情上去秸脱。
-
安裝Cocoapods
mac系統(tǒng)自帶ruby環(huán)境落包,網(wǎng)上有的教程是讓你重新裝svm,然后利用rvm再裝ruby,注意區(qū)分摊唇。
在此所有的操作都是在終端中操作咐蝇。(終端設(shè)備電腦lunchpad里面)
1.因?yàn)镽uby的軟件源rubygems.org被屏蔽了,所以要更換源
gem sources --add [https://gems.ruby-china.com/](https://gems.ruby-china.com/) --remove [https://rubygems.org/](https://rubygems.org/)
2.用淘寶的鏡像代替(可以去掉)
這一步是因?yàn)閲?guó)內(nèi)有墻的限制巷查,會(huì)造成安裝cocoapods的過(guò)程變的十分慢有序,替換為淘寶的鏡像速度會(huì)相對(duì)較快。
gem sources -a https://ruby.taobao.org/
3.查看是否設(shè)置成功
gem sources -l
如果輸出結(jié)果是如下這樣岛请,那說(shuō)明這一步就成功了旭寿。
*** CURRENT SOURCES ***
http://ruby.taobao.org/
4.升級(jí)gem
sudo gemupdate--system
5.安裝Cocoapods(試試前面的能不能省掉)
sudo gem install cocoapods
6.更換repo鏡像為國(guó)內(nèi)服務(wù)器
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod repo update
7.初始化第三方庫(kù)
pod setup
7.查看Cocoapods是否支持某個(gè)類庫(kù),只要能夠查詢到框架就表明這個(gè)這臺(tái)電腦Cocoapods已經(jīng)安裝成功崇败。
pod search 類庫(kù)名
支持模糊查詢(如:AFNetworking),如果下面顯示出AFNetworking框架的各個(gè)版本就代表Cocoapods安裝完成盅称。
8.以后更新第三方庫(kù)
pod repo update
可能碰到的問(wèn)題
1、ERROR: While executing gem ... (Errno::EACCES) Permission denied - /Users/xxxxx/.gemrc
可以用sudo chown -R xxxx /Users/xxxx/.gemrc解決
2僚匆、pod search 搜索庫(kù)的時(shí)候報(bào)錯(cuò)Unable to find a specification for xxxxx
解決方法:在終端執(zhí)行這兩句代碼微渠,然后重新安裝pod,在進(jìn)行搜索。
pod repo remove master
pod setup
3.安裝的時(shí)候報(bào)錯(cuò)說(shuō)selected xcode error
解決方法:運(yùn)行這句代碼咧擂,然后重新安裝
sudo xcode-select -switch /Applications/Xcode.app/
Cocoapods相當(dāng)于一款軟件逞盆,在電腦上安裝成功以后,以后就可以直接使用他來(lái)給項(xiàng)目集成框架松申。不需要重復(fù)上面的操作云芦。
-
具體在項(xiàng)目中如何使用Cocoapods
- 我們通過(guò)集成MJRefresh類庫(kù)來(lái)演示如何使用CocoaPods來(lái)做依賴庫(kù)管理。首先贸桶,建立一個(gè)xcode工程舅逸,命名為CocoaPodsTest,現(xiàn)在的工程結(jié)構(gòu)如下圖所示皇筛。
1.關(guān)閉新建立的工程琉历,打開(kāi)終端
- 檢查SDWebImage是否支持Cocoapods,支持模糊查詢
pod search SDWebImage(在終端輸入)
執(zhí)行后通過(guò)輸出結(jié)果可以看到mjrefresh是支持CocoaPods的,注意紅框標(biāo)記的內(nèi)容水醋,這是待會(huì)我們配置xcode時(shí)需要的信息旗笔,這條配置項(xiàng)就是告訴CocoaPods去下載和管理第三方庫(kù)的哪一個(gè)版本。** 如果搜索過(guò)后最下面出現(xiàn)一個(gè):,則直接點(diǎn)擊q便可退出拄踪。
- 左下角有一個(gè)冒號(hào)“ :”蝇恶,一般把第一個(gè) pod 'SDWebImage', '~>3.7.6'復(fù)制保存,再點(diǎn)擊q退出(下面編輯會(huì)用)
2.檢測(cè)完畢后我們?cè)诮K端里輸入下面的代碼惶桐。
cd +把工程拖進(jìn)終端(自動(dòng)生成一個(gè)路徑)(當(dāng)然你也可以進(jìn)行查看輸入psw或者ls)
3.管理第三方庫(kù)的PodFile文件(也就是進(jìn)行編輯)
vim Podfile(輸入代碼之后直接進(jìn)行回車撮弧,會(huì)跳出來(lái)下面的代碼框
先把1里面復(fù)制的版本代碼復(fù)制下來(lái)放到第三行珍昨,再輸入下面的代碼即供,按照順序輸入
4.點(diǎn)擊Esc退出編輯,再按 shift+;
,最后再按: wq
保存并退出文件。
5.pod install 在工程中安裝我想要的框架
pod install
拓展:
--no-repo-update Skip runningpod repo update
before install: 只更新當(dāng)前新的第三方哑姚,不會(huì)更新所有的第三方
Podfile.lock
:第一次pod 就會(huì)自動(dòng)生成這個(gè)文件应结,描述當(dāng)前導(dǎo)入框架版本
pod install
:根據(jù)Podfile.lock 去加載缀踪,第一次會(huì)根據(jù)podfile文件加載
pod update
:去檢查之前導(dǎo)入框架有沒(méi)有新的版本井氢,如果有新的版本就會(huì)去加載,并且更新 Podfile.lock
pod repo
:管理第三方庫(kù)的索引裙椭,去尋找有沒(méi)有最新版本躏哩,有就記錄
6.如果想繼續(xù)添加框架,只需找到框架的版本號(hào) 放到建好的Podfile文件揉燃,通過(guò) pod update
進(jìn)行更新扫尺,更新之前要記得讓你的終端處于你工程所在的目錄下
7.將第三方庫(kù)集成到項(xiàng)目中
如果之前的全部工作都完成了,工程目錄下就會(huì)有一個(gè)Podfile文件了炊汤,注意必須和.xcodeproj在同一個(gè)目錄下正驻。
會(huì)多出一個(gè)名為Pods的依賴工程,打開(kāi)/Pods/Pods文件夾后抢腐,能找到我們?cè)赑odfile寫的各種第三方庫(kù)姑曙。
8.至此用Cocoapods管理第三方框架的所有工作做完。
如果需要依賴多個(gè)第三方類庫(kù)迈倍,只需要修改Podfile文件的配置伤靠,然后運(yùn)行pod update命令即可,比如新增一個(gè)AFNetworking的依賴庫(kù)啼染,首先執(zhí)行pod search AFNetworking查看一下AFNetworking的配置信息宴合,修改Podfile文件,在后面增加AFNetworking的對(duì)應(yīng)配置信息迹鹅,然后運(yùn)行pod update命令就完成了對(duì)AFNetworking的集成卦洽。
-
1、pod search 框架名 找到版本號(hào) pod 'AFNetworking', '~> 3.1.0'
-
2斜棚、cd 你工程所在的目錄阀蒂, 通過(guò)pwd查看當(dāng)前終端所在的路徑
-
3、vim Podfile 1.點(diǎn)擊i進(jìn)入編輯狀態(tài) 2弟蚀、寫內(nèi)容 3脂新、esc退出編輯,4粗梭、:wq保存退出
編輯的內(nèi)容:platform :ios, ‘7.0‘ target "卡頓測(cè)試" do pod 'SDWebImage', '~> 3.7.6' end
-
4、pod install 在工程中安裝我想要的框架
-
5级零、如果想繼續(xù)添加框架断医,只需找到框架的版本號(hào) 放到建好的Podfile文件滞乙,通過(guò)pod update進(jìn)行更新,更新之前要記得讓你的終端處于你工程所在的目錄下
經(jīng)驗(yàn)之談
如果在使用cocopods的過(guò)程中出現(xiàn)很多的問(wèn)題,你可以嘗試下面的3步驟
1.升級(jí)gem
sudo gem update--system
2.安裝Cocoapods
sudo gem install cocoapods
3.初始化第三方庫(kù)
pod setup
聲明:使用CocoaPods來(lái)添加第三方類庫(kù)鉴嗤,無(wú)論是執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動(dòng)
解決辦法: 終端執(zhí)行下面的代碼
pod repo update
為他人的安裝cocopods的經(jīng)驗(yàn)
CocoaPods安裝 詳細(xì)
CocoaPods pod install/pod update更新慢的問(wèn)題
Cocoapods常用命令及介紹
CocoaPods管理本地庫(kù)
CocoaPods更新本地倉(cāng)庫(kù)的master的下載:下載完直接 command + shift + G 輸入 ~/.cocoapods/repos
替換掉master就好
升級(jí)cocoapods踩坑
9斩启、后續(xù)補(bǔ)充
-
9.1、 升級(jí)cocoapods到制定版本
查看cocoapods有多少個(gè)版本
gem list
卸載 cocoapods
sudo gem uninstall cocoapods -n /usr/local/bin
安裝指定 1.7.2 版本的 Cocoapods
sudo gem install cocoapods -v 1.7.2
安裝指定 最新 版本的 Cocoapods
sudo gem install cocoapods -n /usr/local/bin
查看 cocoapods 版本
pod --version
10醉锅、pod update 報(bào)錯(cuò)處理
- 10.1兔簇、[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down.
解決方案:
sudo gem install -n /usr/local/bin cocoapods