Xcode 中 Swift Package Manager 速度慢
生活的节奏可以慢一些,但开发的效率,却不行。
这个问题的起源,在学习 Vapor 的时候,项目的依赖都是以SPM形式添加的,然后这些依赖的源头都在Github,所以试了几次,更新速度都很慢,甚至会出现无法更新的错误。简单说下解决方法吧。
代理
Swift Package 获取的速度极慢的根本原因,就在于我们访问Github速度极度不稳定。往往需要通过设置代理访问才行。
但是,后来发现,就是 Xcode 拉取 Swift Package的过程,实际上是不走系统的代理的,即使是代理开启全局模式,依然没有解决速度问题。但通过代理使用浏览器访问Github,速度却很不错。
方法一、修改git的配置
使用git的全局配置命令,添加针对github.com的代理设置。
$ git config --global https.github.com.proxy socks5://127.0.0.1:7890
上述命令的结果,就是在~/.gitconfig
文件里增加了如下配置。
[https "github.com"]
proxy = socks5://127.0.0.1:7890
重新启动Xcode,添加SwiftPackage,速度问题已经解决,然后愉快的使用Swift Package Manager 吧。🥳
方法二、命令行,适用于拉取更新SPM
- 为终端开启代理,
all_proxy=
的值是你的代理地址。
$ export all_proxy=socks5://127.0.0.1:7890
- xcode 的 spm 拉取更新命令。
$ xcodebuild -resolvePackageDependencies -scmProvider system
到此,重新打开项目,发现项目依赖的包已经更新完毕。🎉
方法三、代理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速度慢的问题,这个困扰了我长时间的问题也就告一段落了。🎉
转载自:https://juejin.cn/post/6975355916531023880