MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return

3.16 解决办法
使用SSH

配置github SSH

git config --global user.email "[email protected]"

创建公钥密钥,保存路径默认,直接按Enter键,输入密码同样Enter键
ssh-keygen -t rsa -C "[email protected]"

MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return_第1张图片
屏幕快照 2017-03-16 20.26.55.png

前往文件夹 /用户/qiyong/.ssh,找到id_rsa.pub文件,使用文本编辑打开后,全选复制,然后登陆GitHub账户,在设置中找到SSH和GPG密钥,选择New SSH Key新建密钥,将复制的内容粘贴进去,Add创建成功。

在终端中下载

cd ~/.cocoapods/repos git clone [email protected]:Cocoapods/Specs.git master

然后执行命令
rm ~/Library/Caches/CocoaPods/search_index.json
再pod search 就可以了。

pod 更新和安装采用以下命令
pod install --verbose --no-repo-update pod update --verbose --no-repo-update

转为SSH,其实和直接使用http,或者下载好资源再拷贝到~/.cocoapods/repos目录下的解决办法,并没有什么区别。

注意:可使用命令查看当前的请求方式
git remote -v

屏幕快照 2017-03-16 20.35.27.png

3.8号的时候,好多app 因使用热修复而收到警告,尽管我还没有收到邮件警告,但这个问题既然那么多人遇到了,咱还是及时把Hotfix清除掉吧,于是由此引发了一系列问题。在此以作记录,方便以后查阅。3.15仍无法解决SSL证书问题,于是以http替代https
qimatoMacBook-Pro:~ qiyong$ gem sources -l *** CURRENT SOURCES ***https://gems.ruby-china.org qimatoMacBook-Pro:~ qiyong$ gem sources --add http://gems.ruby-china.org/ --remove https://gems.ruby-china.org http://gems.ruby-china.org/ added to sourceshttps://gems.ruby-china.org removed from sources qimatoMacBook-Pro:~ qiyong$ gem sources -l *** CURRENT SOURCES *** http://gems.ruby-china.org/ qimatoMacBook-Pro:~ qiyong$ sudo gem install -n /usr/local/bin cocoapods qimatoMacBook-Pro:~ qiyong$ pod setup

3.15 以下尝试均失败!首先是pod update 失败,于是我就去更新pod ,然后在pod setup时遭遇一下错误:

fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': Server aborted the SSL handshake[!] CocoaPods was not able to update the master repo. If this is an unexpected issue and persists you can inspect it running pod repo update --verbose

rvm升级

在这一过程中我也走了弯路,没能准确的找到问题的根源所在,于是查看了下ruby的最新环境2.3.0 当时我的rvm是1.27的版本,于是我直接去更新ruby,遭遇错误:

MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return_第2张图片
D857F8A7B7A0166BD058FC464D6ECEB7.jpg

于是,对rvm进行升级,
\curl -sSL https://get.rvm.io | bash -s stable
$curl -L get.rvm.io | bash -s stable
载入rvm 环境 $source ~/.rvm/scripts/rvm
或者在当前的窗口中继续输入 $rvm update
然后查看rvm的版本就可知道是否真的安装成功 $rvm -v

使用rvm对ruby进行升级

查看ruby的最新版本$rvm list known
安装rubyrvm install 2.4.0
设置默认版本,可以用这条命令来完成$ rvm use 2.4.0 --default
查看已安装的ruby$ rvm list
卸载一个已安装ruby版本$ rvm remove 2.4.0
在这一过程中,rvm install 2.4.0时遇到上面图片所展示的问题二,这时我再次查看,注意到了这样的描述:

Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

问题来了:macPorts的问题如何解决?

打开链接:https://www.macports.org/install.php ,选择当前系统对应的macports即可,下载完成后点击安装。

之后再打开终端新窗口,执行ruby的升级命令即可。ruby升级之后,我再次对pod升级,问题依旧:

fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return error -9806[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progressCloning into 'master'...fatal: unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return error -9806

这个时候我才意识到问题的根本所在,原来是SSLread的错误

查阅资料说是SecureTransport后端使用的curl。
资料中使用到了以下命令:
$ brew remove git $ brew remove curl $ brew install openssl $ brew install --with-openssl curl $ brew install --with-brewed-curl --with-brewed-openssl git

我在终端中输入了一下brew list,告诉我该命令不可用,原来我的电脑并没有安装Homebrew

Homebrew安装

命令如下
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

在这一过程中遇到如下问题描述:


8A32A3FE-6155-40FF-ACE3-978717D7E36A.png

于是我将github的HTTPS转为SSH
在Terminal中输入以下命令即可$git remote set-url origin [email protected]:USERNAME/OTHERREPOSITORY.git
完成之后打开新窗口再次安装brew,
这次成功了,之后就是执行brew install openssl
完成后继续执行brew install --with-openssl curl
最后再次执行命令brew install --with-brewed-curl --with-brewed-openssl git
至此,打开新窗口,再次pod setup就成功了。

个人猜测,不知道是否将github的HTTPS转为SSH,即可pod setup成功,当时没有想到这点去尝试一下。
rvm pkg install openssl2.rvm install 2.3.0 --with-openssl-dir=/Users/milai/.rvm/usr (加粗的代表 第一步安装openssl的文件目录)
3.14全部卸载,从头开始,使用brew安装了openssl后,继续使用brew安装ruby ,依然失败 此时系统中的ruby 仍为2.0.0,我想应该是缺失了将brew安装的ruby拷贝到系统中去。

此方式失败。

而后重装rvm 安装ruby采用的以下方式:


MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return_第3张图片
屏幕快照 2017-03-14 19.42.10.png

MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return_第4张图片
屏幕快照 2017-03-14 19.42.25.png

MacOS 10.12 pod update时遇到的问题:unable to access 'https://github.com/CocoaPods/Specs.git/': SSLRead() return_第5张图片
屏幕快照 2017-03-14 19.42.46.png

此方式仍旧失败。
官网中说参考这个链接中
(https://github.com/huacnlee/init.d/blob/master/install_rvm)
的方式 正确安装gem/ruby,但我不知道究竟是哪一步出错。

看过了这篇文章
http://www.jianshu.com/p/b64b4fd08d3c
很多人说他们的问题解决了,但我一开始就是正确的安装姿势,16年,包括17年2月份更新时都是可以的,没问题的,3月10号时再次更新,就出错了。SSL问题到现在也没找到正确的解锁姿势。

另有解决办法,起初有尝试过,亦然失败。
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
这是两篇关于解决ruby的openSSL问题的文章:
https://ruby-china.org/topics/28575
http://www.jianshu.com/p/dc0b99226b83

尝试过,在make这一步出现问题。
解压:tar -xzvf ruby-2.4.0.tar.gz

参考链接:
1.ruby更新: http://charsdavy.github.io/2016/09/03/mac-ruby-update/
2.轻松几步搞定CocoaPods修复10.11不能安装问题http://www.jianshu.com/p/9fd6d9ddf4ca3.Mac
3.升级到10.11 出现的问题和解决方法
http://www.jianshu.com/p/02b74ad2787c
4.http://stackoverflow.com/questions/39434447/unable-to-setup-pods-error-rpc-failed-curl-56-sslread-return-error-9806
5.在SSH和HTTPS之间切换https://help.github.com/articles/changing-a-remote-s-url/
6.http://blog.sina.com.cn/s/blog_bb5a48430102w9j3.html
7.Homebrew安装 https://brew.sh/index_zh-cn.html
8.http://www.jianshu.com/p/dc0b99226b83
9.CocoaPods 的简单快速安装方法

你可能感兴趣的