Mac 10.11系统下cocoaPods安装注意事项
本文讀者需具備的知識:cocoaPods相關概念及常用命令。
今天初次使用cocoaPods(下面我就稱其為可可豆好了),為其在OS X 10.11系統下的安裝折騰了半天,衰x10^n。。。
先反省一下關鍵點:[1]版本兼容性;[2]解決問題的思路!!!
系統更新(因為代碼中使用了XCode 7的新特性,而XCode需要10.11系統)后,一上來:
sudo gem install cocoapods? //不要sudo應該也可以
然后,提示需要ruby2.2.2以上的ruby版本……(而在10.10系統下沒這個提示,why?)
然后按照http://blog.csdn.net/lissdy/article/details/9191351的做法,更新了ruby。
先列出可用版本(命令略,下同),又在ruby官網看到,當前最新穩定版是2.3.1,穩定版,聽起來就讓人放心,于是更新到2.3.1。
然而,最新的穩定版就好嗎?事實再次證明這一真理:適合的才是最好的!!而我想當然地選擇最新穩定版,就是給自己設了第一個坑。。。
ruby更新完成之后,再安裝可可豆,安裝成功,會看到安裝的是1.0.1版本,仿佛看到了勝利的曙光……
然后cd到項目路徑,并執行:
pod install //可加上--no-repo-update參數,表示不更新可可豆的本地repo,
……竟然找不到pod命令?
可可豆版本不對?卸載之,再重新安裝0.39.0的版本(公司有前輩用這個版本,總錯不了)
然后……還是不行!于是這樣折騰了好幾個來回。
發現,當可可豆版本是1.0.1的時候,pod install命令會發生錯誤:
The dependency `SDWebImage (= 3.7.4)` is not used in any concrete target.
……
剛開始也沒管這個錯誤,就以為可可豆只能選0.39.0的版本了。后來搜索知道,這是因為新版的可可豆Podfile格式發生了變化,需要每個第三方庫指定target。那我還真是只能選0.39.0的版本了,合作的項目總不能隨便改配置文件吧……
使用0.39.0的版本,照錯依舊。再去搜索,看到一個安裝ruby的時候有一個 --default 參數,起初還以為是按照默認設置安裝,后來才注意到,這表示將安裝的ruby版本設置為默認版本。
對于已安裝的ruby:
rvm use 2.3.1 --default
然后,pod命令起作用了!!
原來pod的運行跟ruby版本息息相關。可惜我當時還沒意識到這一點。。。
接著發現,pod install命令雖然能被系統識別,發生了莫名其妙的錯誤:
先是警告:
Unable to load a specification for the plugin `/Users/xxx/.rvm/gems/ruby-2.3.1@global/gems/cocoapods-deintegrate-1.0.0`
看到ruby-2.3.1這個字眼,就以為跟ruby版本很大關系,實際上是ruby版本的問題,但問題不在這個警告,其實它只是個警告,還是黃色,而不是紅色,表示警告不是很嚴重……我卻把這個警告當成了問題的重點,這是跳進的第二個坑。
然后再搜,找著帖子試了試,還是不行。。。其實,根本問題是在警告下面的一個error:
### Error
```
NoMethodError - undefined method `to_ary' for #<Pod::Specification name="AFNetworking">
當初沒注意這個error。。。也許因為這個error是黑色字體不顯眼?我只能自嘲。。。
反而更注意下面很多行發現不了什么的log:
/Users/xxx/.rvm/gems/ruby-2.3.1@global/gems/cocoapods-0.39.0/lib/cocoapods/resolver/lazy_specification.rb:14:in `method_missing'
/Users/xxx/.rvm/gems/ruby-2.3.1@global/gems/cocoapods-0.39.0/lib/cocoapods/resolver.rb:64:in `flatten'
/Users/xxx/.rvm/gems/ruby-2.3.1@global/gems/cocoapods-0.39.0/lib/cocoapods/resolver.rb:64:in `block in resolve'
.......
然后,請教公司前輩,才正確定位錯誤,就是上面的error
參考https://github.com/CocoaPods/CocoaPods/issues/4345,得到思路:
ruby2.3.1下使用cocoaPods有問題,需要先卸載可可豆,再更換ruby版本為2.2.x(當然我這里最低就是2.2.2),然后重新安裝可可豆。
這就是所有問題的關鍵所在!而我就在真相入口周圍一圈一圈地繞,就是避開了真相的大門!!我為什么沒選ruby 2.2.x??!!我為什么沒選ruby 2.2.x??!!我為什么沒選ruby 2.2.x??!!
教訓:【1】遇到問題不要想當然,某一步有過個選擇的時候若不確定,可以使用“窮舉法”,每個選擇都去試一下,里面就有一個是對的。【2】分析錯誤時,不要又想當然,只抓住片面,導致思路跑偏。要把錯誤信息全局、仔細地看清楚,抓住錯誤根本所在。【3】不要在一個點上死磕,自己經過必要的嘗試還是找不到有效的解決辦法時,就要及時向別人請教,不要臉皮太薄,導致無謂地浪費了過多時間。
轉載于:https://www.cnblogs.com/zxy500/p/5824303.html
總結
以上是生活随笔為你收集整理的Mac 10.11系统下cocoaPods安装注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。