Stay weird. Stay different.

0%

cocoapods 更新

cocoapodsIOS上经常是使用的包依赖管理软件,可是每次的系统的更新或者cocoapods自身的更新都会产生一些问题。

今天在使用cocoapods时就遇到了更新失败的情况,在网上找了很多的解决方案,索性最后终于解决了。

下面来总结下更新失败的具体情况,以备不时之需:

  1. 在终端使用

    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附上博客地址

  2. 通过上面的方法重新安装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全部删除。。。

    可即便是这样问题还依然存在,只好再去看看别的办法。

  3. 俗话说的好世界上有两种搜索引擎,一种是Google另一种是其他,这话对于程序员来说就更深有体会了。Google一下找到了GitHub上cocoapods源码中别人提的Issues(Issues#2908)其中有一个回答是这样的

    sudo gem uninstall psych
    sudo gem install psych -v 2.0.0
    

    虽然不太清楚psych是干嘛的,不过应该是版本不兼容产生的问题。

  4. 将psych重新安装成2.0.0的版本,果然安装成功了👍🏻,果断pod intall,结果是悲剧的,安装的问题解决了,可一开始Parsing unable to continue due to parsing error:的问题依然存在,折腾了半天又回到了最初的起点。简单的分析了一下,现在情况是这样的:

    • 可以肯定现在的cocoapods的版本是最新的。
    • 电脑上存在冲突的psych也被重新安装了2.0.0版本。
  5. 又是一顿Google最后找到了一个十分坑爹的错误可能。gem update的时候旧的版本可能会被保存下来,而执行pod intall的时候可能会使用旧版的cocoapods添加版本依赖,随意导致了这个错误。

    具体的解决方法其实十分简单:

    gem cleanup
    

    这条指令会把旧版本的cocoapods移除,问题就解决了。

  • 总结

    • 这次出现的问题是在GitHub上合作开发的前提下,别人在cocoapods中添加了库,在把别人的代码合并到自己的分支的时候出现了这个问题。
    • 按照网上的说法,以上这种错误不会出现在第一次pod install的时候
    • 解决方法是先看自己是不是安装了其他版本的cocoapods,以免造成混淆,如果排除了版本的问题则需要重新安装cocoapods巧神博客中的安装教程
    • cocoapods使用起来十分方便,不过前期的配置还是十分蛋疼的,但愿不会每次pod install都会遇到这种问题。
  • 福利

    Google在我国使用起来还是有很多限制的,可以采用VPN,镜像网站或者修改HOST文件的方式登录。但还是不太方便。之前发现了一个神级网站可以轻松上GoogleBaiGoogledu),名字中就凸显了一种王霸之气!!!,不仅能上Google,还能和Baidu同时检索。一比较高下立判。