生活的节奏可以慢一些,但开发的效率,却不行。
这个问题的起源,在学习 Vapor 的时候,项目的依赖都是以SPM形式添加的,然后这些依赖的源头都在Github,所以试了几次,更新速度都很慢,甚至会出现无法更新的错误。简单说下解决方法吧。
代理
Swift Package 获取的速度极慢的根本原因,就在于我们访问Github速度极度不稳定。往往需要通过设置代理访问才行。
但是,后来发现,就是 Xcode 拉取 Swift Package的过程,实际上是不走系统的代理的,即使是代理开启全局模式,依然没有解决速度问题。但通过代理使用浏览器访问Github,速度却很不错。
方法一、在路由器解决
这是一个很直接的方法,就是在路由器中设置代理,这属于从网络源头解决,如何实现,可能对于不熟悉的人来说,还是有点复杂的。
方法二、命令行,适用于拉取更新SPM
- 为终端开启代理,
all_proxy=
的值是你的代理地址。
$ export all_proxy=socks5://127.0.0.1:7890
- xcode 的 spm 拉取更新命令。
$ xcodebuild -resolvePackageDependencies -scmProvider system
到此,重新打开项目,发现项目依赖的包已经更新完毕。?
参考:如何让swift package manager走代理的内容,感谢作者@范德萨就是我分享。
方法三、代理App,解决添加SPM的痛点。?强烈推荐
我们使用命令行代理后,对于在文章开头提到的问题,在一个已经添加SPM依赖的项目中,是可行的。
但是,也有新的问题,如果再添加一个SPM呢?仍然绕不过的Xcode中的添加机制(死慢死慢的)。
针对这个问题,找到一个更完全的解决方法,就是针对Xcode,使用代理,让其走代理访问网络。
- 需要一个负责代理的 App,这里选择Proxifier。
- 需要为添加代理端口,查看自己的代理的走端口,添加即可。我使用的是Clash Mac版,默认就是
127.0.0.1: 7890
。
- 为Xcode设定单独设置代理规则。这里需要注意一下,这里需要手动添加一个
com.apple.dt.Xcode.sourcecontrol.Git
,这个是Xcode中SWP中使用的Git(罪魁祸首)。
参考:Xcode设置SPM代理的内容,感谢作者@独风孤月
此方法解决了Xcode中使用SPM速度慢的问题,这个困扰了我长时间的问题也就告一段落了。?
© 版权声明
文章版权归作者所有,未经允许请勿转载,侵权请联系 admin@trc20.tw 删除。
THE END