每次升级Xcode,一般会导致Xcode工程里的cocapods失效,运行工程到处报错,也没法添加和引用新的第三方依赖,这时很多童鞋就一片哀嚎,妈蛋,卧槽。。。。然后一顿狂百度,google,虽然也不是啥复杂的问题,但随便一折腾就是2小时,难道是自己使用cocapods的姿势不对,甚至开始怀疑人生,好吧,废话不多说(其实已经废话了这么多。。。)时间宝贵,大家且行且珍惜啊。
首先,安装ruby环境;
taobao 的 ruby 镜像已经失效,替补方案详情见 https://ruby-china.org/topics/29250
删除淘宝源 $gem source -r https://ruby.taobao.org to remove
添加原版源 $gem source -a https://rubygems.org/ to read
使用 $gem sources -l查看以下确保只有一个https://rubygems.org/源存在
*** CURRENT SOURCES ***
https://rubygems.org
在https://www.ruby-lang.org/zh_cn/downloads/ 下载好源码后,解压在控制台cd进源码文件夹根目录使用命令进行安装
$ ./configure
$ make
$ sudo make install
以上3步全部完成之后 使用$ruby -v看一下当前Ruby版本
bogon:ruby-2.4.1 princemei$ gem source
*** CURRENT SOURCES ***
到这一步,ruby环境算是安装好了
其次,安装cocoapods
$sudo gem install cocoapods --pre
如果报错 :
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources or 前面让安装OpenSSL 重新build ruby,or后面是让使用 http 别用https。
先看一下$openssl version是不是安装了 OpenSSL
OpenSSL 0.9.8zh 14 Jan 2016恩,有版本,还挺新的
那就更换源 的地址
删除 https 源
$gem source -r https://rubygems.org/ to remove
添加 http 源
$gem source -a http://rubygems.org/ to read
确保添加正确
$gem source
*** CURRENT SOURCES ***
http://rubygems.org/
见证奇迹的时刻
$sudo gem install cocoapods --pre
这需要一段时间,待安装成功后,验证一下是否安装成功
$ pod --version
1.3.0.beta.2
再次,就是在Xcode工程的使用。(这里也有些值得注意的地方,比如Podefile文件的编写)
如果是旧工程,这建议先删除原来与pods相关的文件
在终端里,cd到你的工程目录:
$ cd /Users/xxx/xxx
$ vim Podfile
点i进入编辑模式,编写Podfile文件,例如:
platform:ios,‘8.0’
target YouProjectName‘do
pod 'AFNetworking','~> 3.1.0'
pod 'SDWebImage','~> 3.8.1'
pod 'SVProgressHUD','~> 2.0.3'
pod 'MJExtension','~> 3.0.11'
pod 'MJRefresh','~> 3.1.10'
pod 'DACircularProgress','~> 2.3.1'
end
一定要按官方规范来写,不然没效果,会报错。之前可以简单写成
platform:ios,‘6.0’
pod 'AFNetworking'
pod 'SDWebImage'
pod 'SVProgressHUD'
pod 'MJExtension'
pod 'MJRefresh'
pod 'DACircularProgress'
现在不行了,这样会报错:
[!] Invalid `Podfile` file: syntax error, unexpected tFID, expecting end-of-input.
[!] Invalid `Podfile` file: syntax error, unexpected keyword_do_block, expecting end-of-input.
官方规范是 :
platform:ios, ‘x.0’
target YouProjectName‘do
pod 'AFNetworking', '~> 3.1.0'
pod 'SDWebImage', '~> 3.8.1'
。。。
end
需要注意的是:platform:ios, ‘x.0’的冒号之间不能有空格,而且 这个pod 'AFNetworking', '~> 3.1.0' 的 '~> 3.1.0' 得是用终端命令 pod search AFNetworking 查出来的 不然就不能正常更新下来 ,还有一些第三方框架对target的iOS的最低版本有要求,不能太低,比如更新AFNetworking,就不能写ios, ‘6.0’,不然报错:[!] The dependency `AFNetworking` is not used in any concrete target. 换成ios, ‘8.0’就万事大吉鸟,妈蛋 是不是处处是坑啊。。
编辑完毕,按ESC退出,输入 :wq 退出
最后,就是安装pods了
$ pod install
等一会儿出现类似如下信息就代表创建成功。每次pod install后记得pod update下。
好了,你可以去Xcode工程所在目录里找到YourProjectName.xcworkspace文件双击打开工程,愉快地撸代码了,是不是也没多复杂啊!!!!!!!!