安裝 cocoapods 時(shí)遇到的坑
今天在新的 mac 上安裝 cocoapods. 在將Ruby 的鏡像換成淘寶的后.為啥要換,大家都懂的.在天朝.你肯定會(huì)被墻的.本以為輸入sudo gem install cocoapods此命令就可以坐等 OK 了,但是,cocoapods沒(méi)有那么和善,拋出了一行錯(cuò)誤:Error installing pods:activesupport requires Ruby version >= 2.2.2.
這個(gè)大家都能看懂.意思就是你要安裝 cocoapods. 你的 Ruby 環(huán)境版本必須大于等于2.2.2.于是,我輸入了 gem --version.結(jié)果出來(lái)的版本號(hào)是2.6.0.我說(shuō)這明明大于2.2.2.怎么還提示版本太低呢.結(jié)果一查才知道:rvm是用來(lái)管理ruby的,ruby的其中一個(gè)“程序”叫rubygems,簡(jiǎn)稱 gem,而用來(lái)管理項(xiàng)目 的gem的,叫bundle.完全是不同的東西,他們相同的只是都可以管理gem.所以說(shuō)不能用這個(gè).得用rvm list.一查, ruby 的版本好像是1.9.8吧,看來(lái)是cocoapods 沒(méi)騙我.接下來(lái)的工作就是升級(jí) cocoapods 了.
1、安裝 RVM
RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem庫(kù)管理(gemset)
$ curl -L get.rvm.io | bash -s stable
等待一段時(shí)間后就可以成功安裝好 RVM。測(cè)試是否安裝正常
rvm -v
然后就可以看到目前裝好的 ruby 環(huán)境的版本了.因?yàn)檫^(guò)程正確過(guò)了.沒(méi)來(lái)的及截圖.
2、用RVM升級(jí)Ruby
查看當(dāng)前ruby版本
$ ruby -v
ruby 1.8.7
列出已知的ruby版本
$ rvm list known
安裝ruby 2.3
$ rvm install 2.3
這里我直接安裝2.3版本.
安裝完成之后ruby -v查看是否安裝成功。
這是就可以看到你安裝的當(dāng)前版本了.
這里還要說(shuō)的就是ruby - list 是查詢你所安裝的 ruby 的所有版本.如果不只一個(gè),就把多余的刪掉吧,不然會(huì)有時(shí)候會(huì)影響的.
現(xiàn)在安裝成功了,接下來(lái)就是執(zhí)行 sudo gem install cocoapods ,安裝 cocoapods 了.也如愿的成功了.
接下來(lái)就是 pod 第三方庫(kù)了.結(jié)果又被坑了,之前在配置 Podfile 文件的時(shí)候沒(méi)有配置 target. 結(jié)果找原來(lái)的 pod install 后報(bào)錯(cuò):
[!] The dependency `AFNetworking` is not used in any concrete target.
The dependency `SDWebImage` is not used in any concrete target.
好吧,查了之后才知道,CocoaPods升級(jí)到1.0.0.beta版本之后必須配置target,版本變成1.0.0.bate版是因?yàn)楸籆ocoaPods的mac客戶端覆蓋了。所以說(shuō)又去老老實(shí)實(shí)的配置好 tagter.才想起來(lái)以前的用的是0.39.0的.所以說(shuō):如果準(zhǔn)備寫(xiě)一個(gè)長(zhǎng)期項(xiàng)目,最好在創(chuàng)建Podfile文件時(shí)將source、target、release信息寫(xiě)全,避免日后被坑。
到這里所有問(wèn)題就完美解決了.