加速 Swift Package Manager
虽然国内实际开发用 Swift Package Manager(后称 SPM)的比较少,但是国外的一些开源库里却经常用到。所以经常遇到项目 clone 下来之后,SPM 加载失败导致项目无法运行的问题。
网上关于 SPM 加速的文章也有很多,方法也是五花八门,本文挑选几个进行记录。
根本问题
根本问题还是 Xcode 内部服务无法连接代理,导致访问 Github 经常超时。
所以解决方案还是要从代理入手。
路由器端直接设置代理
在路由器上直接设置代理,从网络源头解决问题。但是哪怕是在一些公司,也不太方便添加软路由等方法做这些操作。有条件的个人可以搞一下。
通过命令行直接拉取
我最后是通过这个方式来解决的,感觉相当来说更简单一些。
具体方法:
-
首先是打开终端,然后在终端内按照 “为终端设置代理” 的方法,设置
https_proxy
、http_proxy
和all_proxy
-
在 项目根目录下 执行下列命令:
xcodebuild -resolvePackageDependencies -scmProvider system
通过命令行直接拉取 SPM 依赖,执行完成后打开项目即可。
有的文章可能提到可以为 git config 设置代理,其命令为:
# 需要将端口替换成自己的端口
git config --global http.proxy 'http://127.0.0.1:1080'
git config --global https.proxy 'http://127.0.0.1:1080'
这里我没有进行尝试,有想法的读者可以自行尝试。
代理 Xcode
既然 Xcode 内的 git 服务无法被 SSR、ClashX 等代理工具简单的影响,那么我们有没有其他的办法来做到这点呢?答案是有的:可以通过 Proxifier 进行拦截,然后再走代理。
但是 Proxifier 是收费的(虽然提供了免费试用),我尝试搜索过免费平替,但是最终没有找到... 所以也没有继续尝试该方法。
有条件的伙伴可以查看 Xcode设置SPM代理 这篇文章,里面有详细的介绍。