Skip to content

Instantly share code, notes, and snippets.

@liang2kl
Last active February 1, 2023 04:04
Show Gist options
  • Save liang2kl/15237e23b06e737f036b8c1c3e5c0102 to your computer and use it in GitHub Desktop.
Save liang2kl/15237e23b06e737f036b8c1c3e5c0102 to your computer and use it in GitHub Desktop.
如何使用 Xcode GUI 上的 Swift Package Manager 成功地进行依赖库的加载

如何使用 Xcode GUI 上的 Swift Package Manager 成功地进行依赖库的加载

GitHub 在中国的连接极其不稳定,在 Xcode 上使用 Swift Package Manager 加载项目依赖库的成功率极低。下面是一些解决办法:

方法 1:全局代理

一般代理工具的代理无法对 Xcode 使用的 git 起作用。经测试,Xcode 使用的 git 为其自带的 com.apple.dt.Xcode.sourcecontrol.Git

要想使用代理进行依赖库的加载,只能使用全局代理(不是 SS 的全局代理)来使得 Xcode 的 git 工具走代理,一个可用的软件是 Proxifier,具体使用可参见有关介绍。

经测试,使用全局代理后,SPM 成功使用代理而非直连进行 git clone,解决了原来的问题。

方法 2:使用 git 协议而非 https 协议进行 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 地址来解决,不过较为繁琐。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment