一.pods版本过低更新的问题。
二.pods镜像文件冲突,无法使用的问题。
首先cocoaPods需要三方面支持:ruby,镜像,pods版本。
大概说一下依赖关系,我们接触到的最上层是pods版本,他是管理第三方库的。然后他的版本号依赖于ruby,ruby依赖于镜像文件。
流程大概是:更新镜像->删掉旧的镜像->升级ruby版本->升级pods版本。
1. 常见问题:
正常流程:从网上下载一个新的项目下来,运行发现pods里面是空的。
执行install/update命令拉取pod库:pod install
然后可能会报这个错:
[!] The `master` repo requires CocoaPods 1.0.0 - (currently using 0.39.0)
提示我pods版本太低,需要1.0.0以上。(pod --version查看pod版本号)
执行命令来更新升级pods
sudo gem install cocoapods
然后运行了一堆,最后又报错了:
WARNING: Unable to pull data from 'http://ruby.taobao.org/': bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
大概意思就是说淘宝这个镜像已经失效了。pods依赖ruby,需要升级ruby。
好吧,我们去换一个ruby镜像:
sudo gem sources --add https://gems.ruby-china.org/
顺便查看一下当前的镜像:
gem sources -l (查看当前ruby的源)
这是我安装的镜像,已经安装过最新的。顺手把旧的删除掉:
sudo gem sources --remove http://ruby.taobao.org/
再去更新ruby:
可以先查看一下现有的ruby版本:rvm list known:
第一个warning是rvm的,一般忽略就行。
更新Ruby命令:
curl -L get.rvm.io | bash -s stable
rvm reload
然后执行rvm命令,更新最新的ruby版本:
rvm install 2.2.0
更新完成以后可以查看当前ruby版本:
ruby -v
好了,到现在所有的基础配置已经完毕。再一次更新pod吧:
sudo gem install cocoapods
然后一番等待,更新完成,当前最新cocoapods:1.2.1
然后安心的再去项目执行:pod install
2. 再说一个坑,是因为装了多个repo仓库引起的。
当你存在多个repo仓库(公司私有的)的时候,就会起冲突:
Unable to find a specification for `******`
这个时候百度的结果是重置pod目录:
pod repo remove master
pod setup
注意:setup真的真的超级慢!
如果你在setup的时候卡着了,没有进度。可以有个办法查看是否在下载。
"cd ~/.cocoapods/"命令行跳到cocoapods文件夹
执行"du -sh *"查看正在下载的文件夹的大小。
然后过会再执行"du -sh *",对比大小,如果没有变化那就用以下方法:
试试这个方法:http://blog.csdn.net/appxcode/article/details/51755073
更新:遇到有的库无法install的问题,大多数是本地配置有问题。修改本地hosts 内容就行了。具体路径:/etc/hosts (command+shift+G转到文件夹)
3. 以上命令行整理:
ruby -v查看当前ruby版本
rvm list查看本地ruby版本
rvm list known 查看现有所有版本
rvm current 查看当前使用的ruby
sudogem sources --remove http://ruby.taobao.org/ 删除某个镜像源
sudogem sources --addhttps://gems.ruby-china.org/添加
rvm --default use 2.2.2 切换使用的ruby版本
rvm install ruby-2.2.2 安装指定的版本
rvm remove 2.4.0 删除相应版本
pod --version查看pod版本号
sudo gem install cocoapods 更新pods
sudo gem install cocoapods -v 1.2.1 安装指定版本
gem sources -l (查看当前ruby的源)
pods 换源
pod repo列举本地的源目录
pod repo remove 源名
pod repo add master https://github.com/CocoaPods/Specs.git
pod repo update
pod setup 更新pod源master仓库
pods 换源
pod repo列举本地的源目录
pod repo remove 源名
pod repo add master https://github.com/CocoaPods/Specs.git
pod repo update
换cocoaPods流程
先卸载本地的pods:
sudo gem uninstall cocoapods
获取本地pod的路径:
which pod
删除pod对应的版本
sudo rm -rf <本地pod路径>
先查看本地安装过的cocopods相关东西:
gem list --local | grep cocoapods
一般来说都会显示下面这几个:
cocoapods(0.39.0,0.39.0.beta.4,0.38.2)
cocoapods-core(1.0.0.beta.4,0.39.0,0.39.0.beta.4,0.38.2)
cocoapods-deintegrate(1.0.0.beta.1)
cocoapods-downloader(1.0.0.beta.1,0.9.3,0.9.1)
cocoapods-plugins(1.0.0.beta.1,0.4.2)
cocoapods-search(1.0.0.beta.1,0.1.0)
cocoapods-stats(1.0.0.beta.3,0.6.2,0.6.1,0.5.3)
cocoapods-trunk(1.0.0.beta.2,0.6.4,0.6.1)
cocoapods-try(1.0.0.beta.2,0.5.1,0.4.5)
这个时候删除对应的版本就好,按照提示一直按Y:
sudo gem uninstall cocoapods
sudo gem uninstall cocoapods-core
sudo gem uninstall cocoapods-deintegrate(1.0.0.beta.1)
sudo gem uninstall cocoapods-downloader
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats
sudo gem uninstall cocoapods-trunk
sudo gem uninstall cocoapods-try
卸载完了再装吧:
1:sudo gem install cocoapods 如果这个报错就用第二个,指定路径的。反正我是不乐意往那里面塞,不写路径会自动安装到ruby下面的bin文件夹。
2:sudo gem install -n /usr/local/bin cocoapods
pod setup(这个应该不会很慢了,如果有master仓库的话)
中途用过的tips:
如何去除Git代理
git config --global -e
忽略SSL证书验证:
git config --global http.sslVerify false