cocoapods是IOS上经常是使用的包依赖管理软件,可是每次的系统的更新或者cocoapods自身的更新都会产生一些问题。
今天在使用cocoapods时就遇到了更新失败的情况,在网上找了很多的解决方案,索性最后终于解决了。
下面来总结下更新失败的具体情况,以备不时之需:
在终端使用
pod install
的时候出现了错误Parsing unable to continue due to parsing error:,网上说首次执行pod install OK,当出现Podfile.lock后执行pod install 以及pod update,出现错误,错误指向Podfile.lock。解决方法是安装 RVM,然后安装Ruby Gems,再安装Cocoapods(附上博客地址)
通过上面的方法重新安装cocoapods,流程是这样的:
sudo gem install cocoapods pod setup
在进行到pod setup的时候出现了错误There was an error reading /Users/yangqihui/.cocoapods/repos/master/CocoaPods-version.yml ,随后下面给了个官方的解决方法(附上地址)
按照官方的做法:
sudo rm -fr ~/.cocoapods/repos/master pod setup
官方采用了最简单粗暴的方式,直接将cocoapods下面的repos全部删除。。。
可即便是这样问题还依然存在,只好再去看看别的办法。
俗话说的好世界上有两种搜索引擎,一种是Google另一种是其他,这话对于程序员来说就更深有体会了。Google一下找到了GitHub上cocoapods源码中别人提的Issues(Issues#2908)其中有一个回答是这样的
sudo gem uninstall psych sudo gem install psych -v 2.0.0
虽然不太清楚psych是干嘛的,不过应该是版本不兼容产生的问题。
将psych重新安装成2.0.0的版本,果然安装成功了👍🏻,果断pod intall,结果是悲剧的,安装的问题解决了,可一开始Parsing unable to continue due to parsing error:的问题依然存在,折腾了半天又回到了最初的起点。简单的分析了一下,现在情况是这样的:
- 可以肯定现在的cocoapods的版本是最新的。
- 电脑上存在冲突的psych也被重新安装了2.0.0版本。
又是一顿Google最后找到了一个十分坑爹的错误可能。gem update的时候旧的版本可能会被保存下来,而执行pod intall的时候可能会使用旧版的cocoapods添加版本依赖,随意导致了这个错误。
具体的解决方法其实十分简单:
gem cleanup
这条指令会把旧版本的cocoapods移除,问题就解决了。
总结
- 这次出现的问题是在GitHub上合作开发的前提下,别人在cocoapods中添加了库,在把别人的代码合并到自己的分支的时候出现了这个问题。
- 按照网上的说法,以上这种错误不会出现在第一次pod install的时候
- 解决方法是先看自己是不是安装了其他版本的cocoapods,以免造成混淆,如果排除了版本的问题则需要重新安装cocoapods(巧神博客中的安装教程)
- cocoapods使用起来十分方便,不过前期的配置还是十分蛋疼的,但愿不会每次pod install都会遇到这种问题。
福利
Google在我国使用起来还是有很多限制的,可以采用VPN,镜像网站或者修改HOST文件的方式登录。但还是不太方便。之前发现了一个神级网站可以轻松上Google(BaiGoogledu),名字中就凸显了一种王霸之气!!!,不仅能上Google,还能和Baidu同时检索。一比较高下立判。