關(guān)于cocoaPods更新和沖突的問(wèn)題

一.pods版本過(guò)低更新的問(wèn)題。

二.pods鏡像文件沖突,無(wú)法使用的問(wèn)題。

首先cocoaPods需要三方面支持:ruby,鏡像,pods版本。

大概說(shuō)一下依賴關(guān)系,我們接觸到的最上層是pods版本,他是管理第三方庫(kù)的。然后他的版本號(hào)依賴于ruby,ruby依賴于鏡像文件。

流程大概是:更新鏡像->刪掉舊的鏡像->升級(jí)ruby版本->升級(jí)pods版本。


1. 常見問(wèn)題:

正常流程:從網(wǎng)上下載一個(gè)新的項(xiàng)目下來(lái),運(yùn)行發(fā)現(xiàn)pods里面是空的。

執(zhí)行install/update命令拉取pod庫(kù):pod install

然后可能會(huì)報(bào)這個(gè)錯(cuò):

[!] The `master` repo requires CocoaPods 1.0.0 -? (currently using 0.39.0)

提示我pods版本太低,需要1.0.0以上。(pod --version查看pod版本號(hào))


執(zhí)行命令來(lái)更新升級(jí)pods

sudo gem install cocoapods

然后運(yùn)行了一堆,最后又報(bào)錯(cuò)了:

WARNING:? Unable to pull data from 'http://ruby.taobao.org/': bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)

大概意思就是說(shuō)淘寶這個(gè)鏡像已經(jīng)失效了。pods依賴ruby,需要升級(jí)ruby。


好吧,我們?nèi)Q一個(gè)ruby鏡像:

sudo gem sources --add https://gems.ruby-china.org/

順便查看一下當(dāng)前的鏡像:

gem sources -l? (查看當(dāng)前ruby的源)

鏡像

這是我安裝的鏡像,已經(jīng)安裝過(guò)最新的。順手把舊的刪除掉:

sudo gem sources --remove http://ruby.taobao.org/


再去更新ruby:

可以先查看一下現(xiàn)有的ruby版本:rvm list known:


第一個(gè)warning是rvm的,一般忽略就行。

更新Ruby命令:

curl -L get.rvm.io | bash -s stable

rvm reload


然后執(zhí)行rvm命令,更新最新的ruby版本:

rvm install 2.2.0

更新完成以后可以查看當(dāng)前ruby版本:

ruby -v


好了,到現(xiàn)在所有的基礎(chǔ)配置已經(jīng)完畢。再一次更新pod吧:

sudo gem install cocoapods

然后一番等待,更新完成,當(dāng)前最新cocoapods:1.2.1

然后安心的再去項(xiàng)目執(zhí)行:pod install


2. 再說(shuō)一個(gè)坑,是因?yàn)檠b了多個(gè)repo倉(cāng)庫(kù)引起的。


當(dāng)你存在多個(gè)repo倉(cāng)庫(kù)(公司私有的)的時(shí)候,就會(huì)起沖突:

Unable to find a specification for `******`

這個(gè)時(shí)候百度的結(jié)果是重置pod目錄:

pod repo remove master
pod setup

注意:setup真的真的超級(jí)慢!

如果你在setup的時(shí)候卡著了,沒有進(jìn)度??梢杂袀€(gè)辦法查看是否在下載。

"cd ~/.cocoapods/"命令行跳到cocoapods文件夾

執(zhí)行"du -sh *"查看正在下載的文件夾的大小。

然后過(guò)會(huì)再執(zhí)行"du -sh *",對(duì)比大小,如果沒有變化那就用以下方法:

試試這個(gè)方法:http://blog.csdn.net/appxcode/article/details/51755073

更新:遇到有的庫(kù)無(wú)法install的問(wèn)題,大多數(shù)是本地配置有問(wèn)題。修改本地hosts 內(nèi)容就行了。具體路徑:/etc/hosts?? (command+shift+G轉(zhuǎn)到文件夾)


3. 以上命令行整理:

ruby -v查看當(dāng)前ruby版本

rvm list查看本地ruby版本

rvm list known 查看現(xiàn)有所有版本

rvm current 查看當(dāng)前使用的ruby

sudogem sources --remove http://ruby.taobao.org/ 刪除某個(gè)鏡像源

sudogem sources --addhttps://gems.ruby-china.org/添加

rvm --default use 2.2.2? 切換使用的ruby版本

rvm install ruby-2.2.2 安裝指定的版本

rvm remove 2.4.0 刪除相應(yīng)版本

pod --version查看pod版本號(hào)

sudo gem install cocoapods 更新pods

sudo gem install cocoapods -v 1.2.1 安裝指定版本

gem sources -l? (查看當(dāng)前ruby的源)

pods 換源

pod repo列舉本地的源目錄

pod repo remove? 源名

pod repo add master https://github.com/CocoaPods/Specs.git

pod repo update

pod setup 更新pod源master倉(cāng)庫(kù)



pods 換源

pod repo列舉本地的源目錄

pod repo remove? 源名

pod repo add master https://github.com/CocoaPods/Specs.git

pod repo update


換cocoaPods流程

先卸載本地的pods:

sudo gem uninstall cocoapods

獲取本地pod的路徑:

which pod

刪除pod對(duì)應(yīng)的版本

sudo rm -rf <本地pod路徑>

先查看本地安裝過(guò)的cocopods相關(guān)東西:

gem list --local | grep cocoapods

一般來(lái)說(shuō)都會(huì)顯示下面這幾個(gè):

cocoapods(0.39.0,0.39.0.beta.4,0.38.2)

cocoapods-core(1.0.0.beta.4,0.39.0,0.39.0.beta.4,0.38.2)

cocoapods-deintegrate(1.0.0.beta.1)

cocoapods-downloader(1.0.0.beta.1,0.9.3,0.9.1)

cocoapods-plugins(1.0.0.beta.1,0.4.2)

cocoapods-search(1.0.0.beta.1,0.1.0)

cocoapods-stats(1.0.0.beta.3,0.6.2,0.6.1,0.5.3)

cocoapods-trunk(1.0.0.beta.2,0.6.4,0.6.1)

cocoapods-try(1.0.0.beta.2,0.5.1,0.4.5)

這個(gè)時(shí)候刪除對(duì)應(yīng)的版本就好,按照提示一直按Y:

sudo gem uninstall cocoapods

sudo gem uninstall cocoapods-core

sudo gem uninstall cocoapods-deintegrate(1.0.0.beta.1)

sudo gem uninstall cocoapods-downloader

sudo gem uninstall cocoapods-plugins

sudo gem uninstall cocoapods-search

sudo gem uninstall cocoapods-stats

sudo gem uninstall cocoapods-trunk

sudo gem uninstall cocoapods-try

卸載完了再裝吧:

1:sudo gem install cocoapods??? 如果這個(gè)報(bào)錯(cuò)就用第二個(gè),指定路徑的。反正我是不樂意往那里面塞,不寫路徑會(huì)自動(dòng)安裝到ruby下面的bin文件夾。

2:sudo gem install -n /usr/local/bin cocoapods

pod setup(這個(gè)應(yīng)該不會(huì)很慢了,如果有master倉(cāng)庫(kù)的話)


中途用過(guò)的tips:

如何去除Git代理

?git ?config --global -e


忽略SSL證書驗(yàn)證:

git config --global http.sslVerify false

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一次安裝CocoaPods也遇到了一些坑,但是 那個(gè)時(shí)候時(shí)間比較緊,沒有抽出時(shí)間整理,最近因?yàn)殡娔X還原從新做了系...
    幸福的尾巴__閱讀 8,628評(píng)論 7 9
  • CocoaPods 是什么? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫(kù)的工具。CocoaPo...
    朝洋閱讀 26,018評(píng)論 3 50
  • 回目一路走來(lái)的這些,恍然間已不知道哪段日子最珍貴。問(wèn)起他人來(lái),大抵也是如此吧,畢竟,我們都是一樣的! 美名其曰黃金...
    LFF一路向西閱讀 214評(píng)論 0 1
  • 幫助別人寫文案 免費(fèi)的 今天,我就慎重地給自己做一個(gè)廣告,那就是自己想要免費(fèi)地給別人做文案,包括策劃,活動(dòng)的組織方...
    彭先生的雜貨鋪閱讀 2,275評(píng)論 0 0

友情鏈接更多精彩內(nèi)容