前言:
CocoaPods是一個(gè)負(fù)責(zé)管理iOS項(xiàng)目中第三方開源庫(kù)的工具野崇,使用起來(lái)非常簡(jiǎn)單方便称开,最近在使用時(shí)發(fā)現(xiàn),之前使用的cocoapods版本過(guò)低乓梨,已經(jīng)不能正常使用鳖轰,比如當(dāng)你要添加某個(gè)第三方庫(kù),使用命令
$ pod install
時(shí)會(huì)報(bào)這樣的錯(cuò)誤:
Updating local specs repositories
[!] The `master` repo requires CocoaPods 1.0.0 -(currently using 0.39.0)
Update CocoaPods, or checkout the appropriate tag in the repo.
意思就是提示你目前版本過(guò)低扶镀,需要升級(jí)cocoapods蕴侣。
那么升級(jí)cocoapods具體應(yīng)該怎么做呢?經(jīng)常今天上午的嘗試臭觉,最終升級(jí)成功昆雀,本文將具體介紹一下cocoapods的升級(jí)過(guò)程。
一蝠筑、升級(jí)ruby環(huán)境到2.2.2以上
檢查當(dāng)前ruby環(huán)境的版本狞膘,(mac系統(tǒng)已經(jīng)默認(rèn)安裝好Ruby環(huán)境,之前安裝過(guò)cocoapods肯定也會(huì)有ruby環(huán)境的存在)使用命令
$ ruby -v
輸入類似如下的版本信息:
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
此時(shí)發(fā)現(xiàn)版本明顯低于最新的版本2.3什乙,如果版本太低就會(huì)導(dǎo)致后續(xù)cocoapods升級(jí)失敗挽封,那只能先升級(jí)ruby環(huán)境了。但是ruby環(huán)境怎么升級(jí)呢稳强?請(qǐng)往下看:
原來(lái)ruby的升級(jí)是通過(guò)RVM(ruby version manage)來(lái)操作的场仲,RVM包含了Ruby的版本管理和Gem庫(kù)管理(gemset)。
你可以通過(guò)RVM命令來(lái)判斷RVM是否已經(jīng)安裝
rvm list
輸出
-bash: rvm: command not found
說(shuō)明此時(shí)我的Mac上面并沒(méi)有安裝RVM退疫,下面就是RVM的安裝:
輸入如下命令進(jìn)行安裝
$ curl -L get.rvm.io | bash -s stable
稍等一下渠缕,會(huì)一直輸出很多內(nèi)容,之后就安裝成功了褒繁,然后可以通過(guò)命令驗(yàn)證
$ source ~/.bashrc
$?source?~/.bash_profile
測(cè)試RVM是否可以正常使用以及查看RVM的當(dāng)前安裝版本亦鳞,使用命令
$ rvm -v
輸出
使用RVM升級(jí)ruby
列出已知的ruby版本
$ rvm list known
稍等一下,會(huì)出現(xiàn)很多平臺(tái)不同的ruby的版本,我安裝的2.2.4版本
$ rvm install 2.2.4
需要等待很長(zhǎng)時(shí)間并打印很多日志燕差,然后查看當(dāng)前的ruby版本
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
對(duì)比文章開始的時(shí)候的ruby版本之后發(fā)現(xiàn)遭笋,ruby版本已經(jīng)升級(jí)成功,并且升級(jí)到了我需要的2.2.4版本
注:
在整個(gè)過(guò)程的實(shí)施中需要提前安裝Xcode徒探,要不然中途也會(huì)提示你安裝Xcode瓦呼,否則將會(huì)報(bào)錯(cuò)。
2.切換源
由于目前 ruby.taobao.org 已停止更新及維護(hù)测暗,所以如果想繼續(xù)正常使用cocopods央串,要更新到 ruby China源,否則會(huì)出現(xiàn)一些莫名的錯(cuò)誤碗啄,下面介紹源的更換
升級(jí)gem到最新版本
$ sudo gem update --system
稍等一會(huì)并且會(huì)輸出很多和版本相關(guān)的內(nèi)容质和,然后移除原來(lái)的淘寶鏡像
$ gem sources --remove https://rubygems.org/
$ gem sources --remove https://ruby.taobao.org/
添加新的鏡像
gem sources -a https://gems.ruby-china.org/
驗(yàn)證你的Ruby鏡像是并且僅是ruby-china
$ gem sources -l
輸出如下內(nèi)容表示源切換成功
*** CURRENT SOURCES ***
https://gems.ruby-china.org/
3.安裝更新cocoapods
$ sudo gem install cocoapods
稍等一會(huì)即可成功,查看pod版本
$ pod --version
此時(shí)版本為1.1.1表示升級(jí)成功稚字,可以使用pod search AFNetworking進(jìn)行測(cè)試pod是否正常饲宿。
注:
1.當(dāng)上述沒(méi)有問(wèn)題時(shí)如果你去給項(xiàng)目添加一個(gè)新的第三方庫(kù)會(huì)發(fā)現(xiàn)報(bào)如下錯(cuò)誤:
Analyzing dependencies
[!] The dependency `ReactiveCocoa (~> 2.5)` is not used in any concrete target.
原因是:podfile升級(jí)到最新版本,安裝跟更新第三方庫(kù)報(bào)胆描,pod里的內(nèi)容必須明確指出所用第三方庫(kù)的target瘫想;
解決辦法:可以修改Podfile文件的配置文件,讓它兼容不指定固定版本袄友;且又不報(bào)錯(cuò)殿托;
即在Podfile文件中添加
target ‘project’ do
第三方庫(kù)
end
2.當(dāng)老項(xiàng)目中使用過(guò)cocoapods時(shí)霹菊,如果你在Podfile中多次使用platform :ios, '7.0'并沒(méi)有什么問(wèn)題剧蚣,但是此時(shí)你升級(jí)了cocoapods,當(dāng)你對(duì)老項(xiàng)目使用pod install或者pod update命令時(shí)會(huì)報(bào)錯(cuò):
解決辦法:
1.刪除Podfile文件中多余的platform :ios, '7.0'旋廷,只留一個(gè)鸠按;
2.添加target
到這里cocoapods已經(jīng)更新到最新版本了,可以愉快的使用了饶碘。