老天很爱捉弄人,昨天下午应客户要求要将SDK发布到cocoapods上时,突然出现了cocoapods无法连接的问题,在网上查了那么多资料都没与解决问题,而客户那边又催命似的,真真的体验了一把煎熬的赶脚,那是相当的难受啊!最后在各种解决办法都无果的情况下,只能祭出杀手锏,删除cocoapods,重新安装。
1、问题出现
上传失败.png 更新失败.png
2、查询问题
a:根据上面的提示,开始在各个平台上找解决办法。
[!] Failed to connect to GitHub to update the CocoaPods/Specs specs repo - Please check if you are offline, or that GitHub is down
b:搜索解决办法如下,其他的解决方法也基本都是这样,但是本人亲测了几遍,都没有解决问题。当然,也可能是我某些方面没顾及到导致问题无法解决。
解决办法是:
这说明CocoaPods还不能正常使用,需要更新pod,下载它的一些依赖包;在终端中输入:
$ pod setup
过一段时间之后,你会在终端中看到跟上面同样的红色的错误信息。
这说明某些环境原因导致pod更新不了,可能原因有,1)gem版本太低;2)github无法链接;3).cocoapods目录下的配置信息错误。我们可以一个一个来排除,
首先更新gem到最新版本,在终端中输入:
$ sudo gem update --system
然后检查是否可以ping通github,在终端中输入:
$ ping github.com
然后查看pob repo list:
$ pod repo list
说明Cocoapods在将它的信息下载到~/.cocoapods里;
cd到该目录里,用du -sh *命令来查看文件大小,结果显示0 repos,说明没有安装成功;
在终端输入:
cd ~/.cocoapods
进入cocoapods文件后在终端输入:du -sh *
重新执行pod setup,过一段时间后提示setup completed,在终端中输入pod list,展示出安装列表;
这样总算安装好了。接下来再一次输入:
pod search AFNetworking
输入过后它可能会报:
[!] Unable to find a pod with name, author, summary, or descriptionmatching `AFNetworking`
解决方案是:
输入:
rm ~/Library/Caches/CocoaPods/search_index.json
后在一次输入:pod search AFNetworking
就可以咯。
2)首先定位到项目文件目录
cd 项目位置
然后添加podfile文件:vim podfile (注:在写该文件的时候要注意格式 ' ' );
进入后按i进入插入模式,进行编辑,安装官方最新的文档格式:
platform :iOS, '8.0'
target '你的项目名称' do
pod 'AFNetworking', '~> 3.0'
end
编辑完成后,按ESC退出编辑模式,最后输入:wq保存并退出文件,此时可以发现在项目目录下多了一个Podfile的文件,请注意这个文件必须与.xcodeproj在同一目录下,
最后:pod install进行安装即可。
3、重装cocoaPods
由于定位到问题但是走步骤二也没有任何效果,所以最直接有效的方法就只能是重装cocoaPods。下面我们开始:
a:首先删除旧版本的cocoaPods
1、卸载老版本
$ sudo gem uninstall cocoapods
2、查看本地安装过的cocoapods相关东西
$ gem list --local | grep cocoapods
实例显示如下
cocoapods (1.4.0)
cocoapods-core (1.4.0)
cocoapods-deintegrate (1.0.2)
cocoapods-downloader (1.1.3)
cocoapods-plugins (1.0.0)
cocoapods-search (1.0.0)
cocoapods-stats (1.0.0)
cocoapods-trunk (1.3.0)
cocoapods-try (1.1.0)
然后使用命令逐个删除
$ sudo gem uninstall cocoapods-core
$ sudo gem uninstall cocoapods-deintegrate
删除完之后接下来安装RVM
$ curl -L https://get.rvm.io | bash -s stable
然后,载入 RVM 环境
$ source ~/.rvm/scripts/rvm
检查一下是否安装正确
$ rvm -v
rvm 1.27.0 (latest) by Wayne E. Seguin , Michal Papis [https://rvm.io/]
用RVM安装Ruby环境
可以先查询已经安装的ruby
$ rvm list
卸载一个已安装版本
$ rvm remove 1.9.2
列出已知的ruby版本
$ rvm list known
可以选择现有的rvm版本来进行安装
$ rvm install 2.4.0
执行到此处需要等上一段时间,但是此时会蹦出来Homebrew更新的问题:
Homebrew.png
所以,我们更新一下Homebrew:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
b:设置Ruby版本
RVM 装好以后,需要执行下面的命令将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.4.0 --default
输出:
Using /Users/zhangzhangkai/.rvm/gems/ruby-2.4.0
这个时候你可以测试是否正确
$ ruby -v
输出:
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
c:查看并替换链接
查询:
$ gem sources -l
可以查看当前是什么连接,然后替换方式如下:
//默认链接
$ gem source -r https://rubygems.org/
//淘宝连接,有资料说淘宝链接不更新了,所以不太安全推荐使用下面的链接
$ gem source -a https://ruby.taobao.org/
推荐链接
gem source -a http://gems.ruby-china.org/
要想验证是否替换成功了,可以执行:
$ gem sources -l
成功显示
*** CURRENT SOURCES ***
http://gems.ruby-china.org/
d:安装coocapods
这里需要耐心等待一段时间
$ sudo gem install cocoapods
$ pod setup
至此,cocoapods安装完成。
4、重装后遇到的问题
现在,我们可以放心的上传项目到cocoapods了,但是又蹦出来找不到“simctl”的问题,莫名其秒,找了好一阵资料,是需要设置Xcode的Locations,问题如下图:
simctl错误.png
设置Locations:
Locations.png
完成设置之后,就可以正常上传项目到cocoapods啦。
参考资料:
cocoapods使用遇到的一般问题解决
https://www.jianshu.com/p/1dea9987c647
Mac 用RVM安装ruby 2.0.0的时候出现错误
http://blog.csdn.net/luohancc/article/details/46897247
unable to find utility "simctl"的解决方案
http://www.hudongdong.com/bug/772.html
网友评论