解决升级到Xcode8.x.x后cocapods失效的正确姿势

2017-07-04  本文已影响189人  PrinceMei

      每次升级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文件双击打开工程,愉快地撸代码了,是不是也没多复杂啊!!!!!!!!

上一篇下一篇

猜你喜欢

热点阅读