本文不会讨论CocoaPods的各种使用技巧以及各种原理,只是简单记录一下在升级过程中遇到的问题,如果使用中有各种问题来欢迎交流。
Podfile.loc 文件变化
前几天一个小伙更新了CocoaPods,其中podfile.lock文件随之也发生了变化,其中一个第三方库MBProgressHUD找不到了:
- MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad
+ MBProgressHUD: 1569cf7ace17a8bac47aabfbb8580a49690386d1
这是其中的变化,于是我就去pod update,但是提示我pod版本太旧,于是我执行了命令:
sudo gem update cocoapods -V
google之后在Stackoverflow上找到了这个一些方法:
在终端中输入:
sudo nvram boot-args="rootless=0"; sudo reboot
然而我重启电脑之后还是没有解决问题,上述问题依然存在,猜想应该系统应该是做了一些别的限制吧。探寻之后认为比较靠谱的方法是:
sudo gem install -n /usr/local/bin cocoapods --pre
这个方法是将CocoaPods 安装在/usr/local/bin 这个目录上。
pod --version 系统显示
显示cocoaPod安装成功,跟新Repos
执行命令:
pod update --verbose --no-repo-update
提示我 source repos可能过时,我就去执行:
pod repo update
但是国内跟新我的速度又太慢,我又不能忍,
研究了一下用户目录下.cocoapods的结构,大胆猜测,pod setup, pod update命令是克隆一个cocoapod 的Spec库,然后想执行pod setup命令终端之后能不能取巧,说做就做
git clone https://github.com/CocoaPods/Specs.git
克隆了一份库到本地,将Specs重命名master之后可以工作,由此猜想pod setup应该执行的是FTP协议
请看结果:
pod update 了一下,第三方库更新成功,折腾了半天终于解决了问题
总结及提问
1. OS X(已经更名为Mac OS)进一步提高了/usr/bin的权限
2. pod setup 底层使用了什么协议?为什么那么慢?
未来CTO
微信:wlaicto
关注我CTO之路从此开始