cocoapods安装报错Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources的解决方案

相信最近很多iOS开发的小伙伴Xcode都升级到了8.1,但是随着升级带来的坑也很多.其中我们开发中比较依赖的第三方库管理工具Cocoapods这时候在新升级的Xcode菜单栏中却消失了,刚开始我也没有很在意,觉得大不了用命令行来操作.但是实际操作中却发现,当用pod install --no-repo-update来集成某个国内框架的时候,发现半天都没有反应,集成国外的主流框架就很快,至于为什么会这样我也有点摸不清头脑,没办法,只能升级安装Cocoapods了.安装Cocoapods的过程也绝对有很多坑.发现按照以往常见的方式安装已经不行.经典的安装步骤如下:

1.先升级Gem

sudo gem update --system

2.切换cocoapods的数据源

先删除ruby数据源

gem sources --removehttps://rubygems.org/

数据源转换为国内淘宝

gem sources -ahttps://ruby.taobao.org/

 查看当前数据源

gem sources -l

3.安装cocoa pods

sudo gem install cocoapods

如果上面的sudo gem install cocoapods安装失败,可以尝试用下面的语句代替试试

sudo gem install -n /usr/local/bin cocoapods

4.将Podspec文件托管地址从github切换到国内的oschina

【先删除,再添加,再更新】

pod repo remove master

pod repo add masterhttp://git.oschina.net/akuandev/Specs.git

pod repo add masterhttps://gitcafe.com/akuandev/Specs.git

pod repo update

5.设置pod仓库

pod setup

6.测试

【如果有版本号,则说明已经安装成功】

pod --version

悲剧的是,当把数据源由国外的ruby转换到国内淘宝时,就出现了令人蛋疼的错误:

Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources

报错信息相信很多人也能看懂:没有找到可用的openssl,需要安装openssl或者找一个http不安全协议的数据源.而国内淘宝的源gem sources -ahttps://ruby.taobao.org/协议是https的.如果直接换成gem sources -ahttp://ruby.taobao.org/会直接报404找不到.这时候我也搜了很多的资料,折腾了2天,终于功夫不负有心人,我找到了解决的方案.既然缺少的是openssl,那么我就按照它的提示来,先搞定openssl的安装.这个安装过程也有点蛋疼,具体步骤如下:

在你的终端依次执行下面的指令,注意:每一步都要执行成功后再执行下一个命令

rvm get stable

brew update

brew doctor

brew install openssl

rvm install ruby-2.3.3  最好安装目前最新的ruby版本,目前最新的就是2.3.3

rvm use ruby-2.3.3

rvm gemset create jekyll

gem install jekyll

给大家一点提示:在安装这些命令的过程中,我也是遇到了问题的,首先有可能会报错,但是这时候大家不要慌,按照错误提示去做就好了.比如刚开始的时候可能就会报找不到某个文件或者路径,这时候你只需要按照提示打开finder,点击前往,把错误提示内文件路径补齐就可以安装了.我在安装到最后一步gem install jekyll时还是报错了,这个错误我一直没解决,幸运的是,它已经不足以影响我们安装Cocoapods了.当你执行成功除了最后一条语句以外的所有指令.这时候你就可以回到上面的第2步开始操作了,这时就不会报可恶的openssl错误了.剩下的就是按照步骤来安装升级即可.

到这里,本来以为万无一失了,但是最后pod setup的时候,还是又报错了,错误信息如下:

[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master

Cloning into 'master'...

error: RPC failed; curl 56 SSLRead() return error -9845

fatal: The remote end hung up unexpectedly

fatal: early EOF

fatal: index-pack failed

但是这个错误相对来说就亲切多了,经过验证,这个是我自己的网络慢,而且不稳定造成的,由于执行pod setup实际上是从github上下载cocoapods的依赖库文件,这些文件一般都有几百兆,所以网络不好的话,就会可能出现上面的情况.我自己是经过了多次失败,pod setup了无数次,后来网络给力点就成功了.如果大家的环境真的不稳定可以换个网络好点的环境去安装,或者也有人说可以直接去github上面下载,下载完成后再拷贝到对应的Cocoapods文件夹中,这一步我本来也想尝试的,但是网络太垃圾,一直下载不完,所以就没有继续,想尝试这种方式的兄弟可以参照:http://blog.csdn.net/samoy/article/details/51956799

你可能感兴趣的:(cocoapods安装报错Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources的解决方案)