如何解决 github ssl_error_syscall 的问题

背景:pod 更新代码的问题

项目依托 cocoapods 管理第三方库

  • 项目中经常要执行pod update更新第三方库
  • 通过 jenkins、fastlane 等持续集成工具,进行打包时要执行pod update更新第三方库
  • 在终端下,访问 github 下载或上传资源

由于 dns 污染等问题,访问 github 经常出现问题。
笔者工作的项目,通过 jenkins 打包 ipa 时,总是遇到更新某个第三方库,提示ssl_error_syscall in connection to github.com:443等问题,造成打包失败。一个项目依赖有 10 多个第三方库,点一次构建,偶尔能安装成功一个库,接着安装下一个就可能失败,需要不断的点‘重新构建’,成功与否看运气。
失败示例如下图

img1.png

img2.png

解决方案

设置代理解决问题

  1. 为终端设置全局代理

首先,笔者使用的代理(科学上网)工具是 Clas()X。 点击电脑屏幕顶部栏 Cl()shX 的图标,再点击复制终端代理命令这个选项,获得命令行。 然后,为终端配置代理。
macOS Mojave 及更低的系统版本的默认 Shell 终端是 bash,我们需要修改.bash_profile文件。

vi ~/.bash_profile
复制代码

接着把上一步复制得到的命令,改写到.bash_profile文件中,格式如下:

export https_proxy=http://127.0.0.1:7890 
export http_proxy=http://127.0.0.1:7890 
export all_proxy=socks5://127.0.0.1:7890
复制代码

保存退出后,执行下面的命令使配置生效:

source ~/.bash_profile
复制代码

从 macOS Catalina 版本开始,苹果将 zsh 作为默认的 Shell 终端,区别是需要修改.zshrc文件,其他设置内容和方法一样。

vi ~/.zshrc
复制代码

接着把上面复制得到的命令,改写到.zshrc文件中,格式如下:

export https_proxy=http://127.0.0.1:7890 
export http_proxy=http://127.0.0.1:7890 
export all_proxy=socks5://127.0.0.1:7890
复制代码

保存退出后,执行下面的命令使配置生效:

source ~/.zshrc
复制代码

在这个链接中,可以查看苹果电脑系统历史版本,为自己的系统选择正确的配置。
设置完成后,可以在新打开的终端下,执行 curl -vv https://www.google.com 命令,测试是否走代理。(不要用 ping 命令测试,此协议不支持代理)
2. 设置 git 代理
在终端窗口执行下面的命令

git config --global http.proxy http://127.0.0.1:7890 
git config --global https.proxy http://127.0.0.1:7890 
复制代码

上面的两部设置完成后,就可以在终端下顺利访问 github 了。

猜你喜欢

转载自juejin.im/post/7078575171828711460
今日推荐