这个问题的起源,在学习 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

增对quan全局的也可以这样设置
# 设置 HTTP 和 HTTPS 代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# 注意:端口号换成你自己的代理端口

# 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy

用这个也可以解决cocoapods拉取慢的问题
[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

到此,重新打开项目,发现项目依赖的包已经更新完毕。🎉