GitHub 在中国的连接极其不稳定,在 Xcode 上使用 Swift Package Manager 加载项目依赖库的成功率极低。下面是一些解决办法:
一般代理工具的代理无法对 Xcode 使用的 git 起作用。经测试,Xcode 使用的 git 为其自带的 com.apple.dt.Xcode.sourcecontrol.Git
。
要想使用代理进行依赖库的加载,只能使用全局代理(不是 SS 的全局代理)来使得 Xcode 的 git 工具走代理,一个可用的软件是 Proxifier,具体使用可参见有关介绍。
经测试,使用全局代理后,SPM 成功使用代理而非直连进行 git clone
,解决了原来的问题。
通常,我们使用的 git 仓库地址类似于
https://github.com/treehollow/treehollow-v3-ios.git
在 Xcode 中,将 https
改为 git
即可无需代理顺利实现依赖库的加载:
git://github.com/treehollow/treehollow-v3-ios.git
这种方法有一定的局限:如果依赖库的依赖文件中 git 仓库远程地址为 https
协议,那么在加载这个库的依赖的过程中仍然会出现原来的问题。可以通过 fork 这个库,修改其依赖文件中的 remote 地址来解决,不过较为繁琐。