背景:pod 更新代码的问题
项目依托 cocoapods 管理第三方库
- 项目中经常要执行
pod update
更新第三方库 - 通过 jenkins、fastlane 等持续集成工具,进行打包时要执行
pod update
更新第三方库 - 在终端下,访问 github 下载或上传资源
由于 dns 污染等问题,访问 github 经常出现问题。
笔者工作的项目,通过 jenkins 打包 ipa 时,总是遇到更新某个第三方库,提示ssl_error_syscall in connection to github.com:443
等问题,造成打包失败。一个项目依赖有 10 多个第三方库,点一次构建,偶尔能安装成功一个库,接着安装下一个就可能失败,需要不断的点‘重新构建’,成功与否看运气。
失败示例如下图:
解决方案
设置代理解决问题
- 为终端设置全局代理
首先,笔者使用的代理(科学上网)工具是 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 了。