设为首页 收藏本站
查看: 1298|回复: 0

[经验分享] Mac 10.11系统下cocoaPods安装注意事项

[复制链接]

尚未签到

发表于 2017-7-8 15:11:49 | 显示全部楼层 |阅读模式
  本文读者需具备的知识: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】不要在一个点上死磕,自己经过必要的尝试还是找不到有效的解决办法时,就要及时向别人请教,不要脸皮太薄,导致无谓地浪费了过多时间。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-391583-1-1.html 上篇帖子: MAC的SVN怎么设置允许.a文件上传 下篇帖子: Mac下maven工程的创建,并搭建SSH环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表