因为最近在接新项目的时候,一些库在Cocoapods里更新不到,并且有些库并不能在Cocoapods导入到,想到可能是版本过低的原因,于是这两天把自己的Cocoapods更新到1.3.0.beta2版本。因为这玩意花了一天的时间,所以把更新的过程所遇到的问题以及要用的命令行贴出来。希望能够帮助到遇到坑的朋友。
自从Mac OS系统升到10.12.5版本之后就没更新过CocoaPods了,所以能预知到会遇到非常多的问题。
首先查看下自己的版本,打开终端,执行下面命令行看你就能看到你的cocopods版本了。
pod --version //查看Cocoapods版本
除了检查自己的cocopods版本之外,你还需要执行
ruby-v //查看ruby版本
rvm-v //查看rvm版本 顺便看是否已经安装了rvm工具
若还没安装rvm 工具先执行1)再执行2),安装了rvm工具的直接执行2)
1)下面来科普一下Rvm工具
Rvm全称Ruby Version Manager,是Ruby版本管理的一个工具。
CocoaPods是用ruby实现的,要想使用它首先需要有ruby的环境。幸运的是 OS X系统 默认已经可以运行ruby了。但是有时候ruby版本过低是无法正常支持CocoaPods的使用,所以需要先安装更新升级rvm和ruby。
安装rvm工具
curl -L get.rvm.io | bash -s stable //安装rvm工具
rvm-v //这步确认已经安装了rvm工具
2)
rvm list // 查看已安装的ruby列表
rvm list known // 查看现有的ruby版本、可以安装的ruby版本
从可安装列表里看到ruby2.4,2.3,2.2,都有。据说网上大神的Cocoapods配置报告里的ruby环境至少要ruby2.0版本,所以我试着先装个ruby2.3.0版本的。
rvm install ruby-2.3.0 //升级ruby到2.3.0版本
make sure ‘brew update’ works before continuing 看来是Homebrew需要brew update更新了。Homebrew是一个软件包管理器,用于在mac上安装一些osx上没有的UNiX工具;类似于360软件管理器。
按着它的提示做吧
brew update
又出问题了 认真看输出的错误分析 执行 sudo chown -R $(whoami):admin /usr/local
sudo chown -R $(whoami):admin /usr/local
这一连续的错误让我失去了耐性,并且是在百度问题无果之后。一开始的初衷要求是下载个最新版CocoaPods,就在那时想能更新什么就什么了。于是从目前的ruby环境安装cocoapods,看能安装到什么版本,并且把旧版cocoapods给删了。
sudo gem uninstall cocoapods //移除旧版cocoapods
再继续装新的CocoaPods之前,升级下gem版本,此处略过,大伙儿自己百度查吧。
再搭配切换下gem源
gem source-l //查看目前gem源 ,无论出来啥都移除啥,安装新的 据说淘宝不能用了,但国内的developer搞了个专门属于中国的镜像,bravo~
gem sources --remove https://rubygems.org/ //移除旧的gem源
gem source-a https://gems.ruby-china.org
然后再执行,下面命令行,查看是否切换成功。
gemsource-l
打印出*** CURRENT SOURCES ***
https://gems.ruby-china.org //打印出这个说明替换gem源成功
准备就绪,这次真的要开始装了
sudo gem install -n/usr/local/bin cocoapods //这里需要输入password的
WTF!!ruby-2.0.0-p643已经不能用了 装不上了。需要装个新的ruby版本。这里有很多版本选择,我建议从高版本装到低版本,哪个能装就装上吧。但我从低版本开始装,因为我想看看从哪版本开始不能装了。于是我装了个ruby-2.0.0-p648版本的
rvm install ruby-2.0.0-p648
可以惊奇发现到这ruby安装一开始自动给我更新homebrew了,
当然这漫长的安装过程消耗了一个多小时的时间
rvm 2.0.0 --default //再把刚才安装的ruby设为默认。
既然Homebrew已经更新完了,是可以升级一波ruby-2.3.0了
rvm install ruby-2.3.0 //安装ruby环境并设成默认
rvm 2.3.0 --default
ruby-2.3.0安装完成后,可以安装CocoaPods,此处就省略了安装过程。并输出版本号
pod --verion //输出为1.2.1版本
下面是到了pot setup更新数据源的过程了 这里有两种方法
pod setup //直接pod seup 这是第一种方法,如果我们用这个命令行来更新repo,整个过程需要非常长的时间,反正我用了三个多小时才下到76%,还因为macbook进入屏幕保护程序断线而前功尽弃,要知道苹果的自带下载是不能断点续传,现在只想说国内的迅雷真是🐂比坏了。所以这种方法是不推荐的,运气好可能不断线,能下好
git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master
//这是第二种方法,推荐使用,更新repo速度飞快,15分钟之内能下载完
下载完更新一下
pod repo update
结果。。
这玩意是从https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master下载下来的,会不会是这里面的东西有问题呢。于是进入这网站看看
看到ReadMe.md找到问题所在了,(其实在/Users/你的Macbook的user名/.cocoapods/repos/master是可以看到Reread.md这个文件,也是会告诉你原因)由于码市官方限制,该项目已经停止更新了,并且数据源已迁移至别处。那么就得下载新的cocoapods/specs,并且发现到这个specs数据源的迁移也是最近才发生的事情,也就13天,6月13日宣布的。我运气好就赶上了这么一波玩意儿~不过先进入新的迁移地址看一下。
可以发现这个Cocoapods/specs数据源比较稳定,每个小时实时更新一次。估计好一段时间开发者都会用这个数据源网站来下载了!!
下面要下载新的Cocoapods/specs数据源了,在这之前需要把之前下载的数据源给删掉,不然下载不了会报错的。
打开Finder,前往 /user/xudonghao/.cocoapods/repos 这个文件夹,把里面master文件夹给删了。
删毕,下载新的Cocoapods/specs数据源
git clone https://gitclub.cn/CocoaPods/Specs ~/.cocoapods/repos/master //再耐心等个10分钟
pod repo update //下载完了别忘了执行这一步
最后,整个Cocoapods的安装算是完成了,并且可以直接升级最高的1.3.0.beta.2版本
This is a test version we'd love you to try~
gem install cocoapods --pre //更新新版本Cocoapods
pod --version
综上所述:完成了对Cocoapods的1.3.0.beta2的更新。
总结下此次更新问题总结
1.ruby环境版本太低需要安装Rvm工具重新升级ruby环境。
2.gem版本太低需要升级并且gem源需要切换成国内的。
3.Homebrew的更新。
4.升级到10.11版本之后,cocoapods的安装命令已改变。
5.由于Cocoapods的数据源被限制导致安装不成功。