最近换新电脑了,在安装cocoapods
的时候遇到了一点儿麻烦,特此记录
1.查看你的ruby
源
gem sources -l
输入上面的命令以后,你会得到一下结果
*** CURRENT SOURCES ***
https://rubygems.org/
这一步是切换ruby
的镜像源,mac
默认的源地址是rubygems.org
,但是这个地址在天朝是不能用,好在咱们有万能的淘宝
update - 2016-11-28
:现在淘宝的镜像不维护了,改用https://gems.ruby-china.org
2.切换ruby源到ruby-China
gem sources —remove https://rubygems.org
gem sources -a https://gems.ruby-china.org
3.安装cocoapods
sudo gem install -n /usr/local/bin/cocoapods
如果你的系统低于10.11
版本,可以使用一下命令
sudo gem install cocoapods
在这一步很可能会出现下面这么一个恶心的东西:
activesupport requires Ruby version >= 2.2.2
他告诉你,想要安装cocoapods
,ruby
的版本必须高于2.2.2
,那么就只能升级ruby
,命令如下:
sudo gem install activesupport -v x.x.x
// 后面的版本号只要高于2.2.2就行了
这个时候,你再去运行上面的安装命令,就可以成功安装的,有些同学使用WiFi
来安装,有时候网络不稳定,可能会等的比较久,耐心等待就好了
update
2017.2.13
等你修改或者升级好了gem
版本以后,你还可能遇到下面这种问题
fuzzy_match
库安装错误,简直不能忍了,一步步的折磨人...这个问题是因为路径问题,你只需要指定
match
的安装位置就行了改换成下面👇这条命令
sudo gem install -n /usr/local/bin cocoapods
有的同学可能会想到另一个问题,我换了路径以后,之前安装的是不是要删掉(强迫症患者),不用担心,gem
会复用之前装好的东西的。
4.设置pod仓库
pod setup
这里也有一个坑,那就是当你输入这个命令的时候,会出现这样几个提示:
Setting up CocoaPods master repo
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master
Cloning into 'master'...
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
而且一片红色,很让人心火大。其实呢,第一次使用setup
命令的时候并不会出现这样的东西,但是有人不能等或者等了好久觉得可能不行了,然后关掉窗口,终止了,这样你以后打开窗口再次使用setup
命令的时候,就会一直出现上面那几句提示。这个时候,你可以先移除之前的设置,然后找个网络比较好的地方,继续setup
!
sudo rm -fr ~/.cocoapods/repos/master
// 移除命令
5.测试是否安装成功
等setup
那一步成功以后,会出现一个绿色的Setup completed!
然后使用下面命令测试是否成功.如果成功,则会直接显示一行数字版本号,那么就可以开始上手开发了...
关于如何使用,那么请出门左转,看看这篇文章,很详细的讲解了如何使用cocoapods
6.有时候cocoapods会抽风
有时候,你明明没有动过cocoapods
,可他就是坏了,不能用了,比如你在执行pod install
的时候可能见到过下面这种问题
[!] Unable to satisfy the following requirements:
- `Firebase/Core` required by `Podfile`
None of your spec sources contain a spec satisfying the dependency: `Firebase/Core`.
You have either:
* out-of-date source repos which you can update with `pod repo update`.
* mistyped the name or version.
* not added the source repo that hosts the Podspec to your Podfile.
Note: as of CocoaPods 1.0, `pod repo update` does not happen on `pod install` by default.
看到这么火红的一片错误,你甚至连把这些信息看完的心情都没有,更别说还是英文的(好吧,无意中透露了什么东西😜)...
而且,这个问题更诡异的地方在于,你在Podfile
里面导入的相应版本库,他找不到,我擦~~~
github
上明明已经更新到某个版本了,你就是从README
里面copy
出来的,你坚信自己只按了Ctrl + C
-> Ctrl + V
,难道cocoapods
出轨了?WTF?
这个问题的原因在于,你的cocoapods
太久没有更新了,以至于版本落后太多...
去更新到最新版本是你的唯一选择,执行下面这个命令来更新到最新的版本:
// 更新到最新的预览版,一次到底
sudo gem install cocoapods --pre
嗯,就是这样,此时你可以安心的放下鼠标等胜利了🙊
然而,有些同学的电脑可能还是不行,因为cocoapods
在本地的缓存
莫慌,执行下面这段万能的命令:
// 移除本地master
sudo rm -fr ~/.cocoapods/repos/master
// 移除本地缓存
sudo rm -fr ~/Library/Caches/CocoaPods/
// 重新setup,如果网速较慢,可以在后面加上 --verbose
pod setup
嗯,差不多了
如果你在setup
这一步等了很久,很久,很久,久......
请把该文章网上翻,看第五点
7.Swift3.0问题
又是swift3.0
,最近一直在解决这个家伙的问题,各种升级
在cocoapods
里面它有时候也会引起问题,在你执行pod install命令的时候,会出现很长一段文字警告信息
好吧,不啰嗦了,直接上方法:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
嗯,是的,就这么办...
如果还是不行,呃...
请出门右拐,看这篇文章
8.搜索到的库版本过低
很多时候,我们会通过search命令搜索github
上的repos
,找到合适的repo
以后直接复制pod 'xxx'
然而这里很多时候我们搜索到的库,版本其实低于其真正的版本,因为这个搜索其实对本地缓存好的search list
进行索引的,而这个索引是在安装cocospod
时候的数据,期间某个repo
的作者可能更新了
解决这个问题的方法就是更新本地的`list数据,命令如下:
pod repo update
9.更新pod版本问题 - update 17.06.06
有时候你收到pod的更新提示,它会告诉你使用下面命令更新
sudo gem install cocoapods
然后你就happy的copy then paste, then
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/xcodeproj
WTF?造成这个问题的原因是,pod安装的时候没有指定路径,就被装在了默认的/bin下面,所以只需要指定路径就行了
sudo gem install -n /usr/local/bin cocoapods
当然你也可以自定义路径,之后就可以happy的使用sudo gem install cocoapods
来更新
$ mkdir -p $HOME/Software/ruby
$ export GEM_HOME=$HOME/Software/ruby
$ gem install cocoapods
[...]
1 gem installed
$ export PATH=$PATH:$HOME/Sofware/ruby/bin
$ pod --version
生命不息,折腾不止...
I'm not a real coder,but i love it so much!