Swift Package Manager
(SPM)是Swift 语言的官方依赖管理工具,它主要是用于管理Swift项目所需的依赖库。从 Swift 3.0
开始集成使用,Swift Package Manager
使用 Git
管理依赖的分发机制。
为什么会加载慢、加载失败
因为本地环境到需引入的依赖库地址网络不通畅:GitHub
,只需要解决这个网络问题就解决加载不出来、下载慢、拉取失败的问题。
解决方式
解决网络不通畅的问题可以有两个方向
- 使用代理,但是Xcode中使用
Swift Package Manager
不会直接使用系统代理,操作方式在下方介绍 - 不适用
GitHub
,使用第三方Git
服务给需要的依赖库做镜像,如果你没有科学上网代理,建议使用这个方式。 - 我站免费提供了一个镜像服务,能有效的解决这个问题。
第一类 (科学上网代理)
方式一
路由器级别科学上网,最省心却也门槛最高,这个方式不多做介绍。
方式二
在终端启用代理后,使用命令调用 Xcode
的 SPM
执行更新
- 打开终端,给当前终端会话设置代理环境,命令如下
export https_proxy=http://127.0.0.1:7890
export http_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890
2. 继续在当前终端中使用 xcodebuild
命令来解析和更新 Swift Package
依赖关系
xcodebuild -resolvePackageDependencies
使用 export 配置的代理设置仅对当前终端会话有效,不在同一个终端使用 xcodebuild
,代理设置将失效。
方式三
使用 Proxifier
软件强制使用 Xcode
使用系统代理,从而使Swift Package Manager
也使用科学上网代理顺畅的访问 GitHub
资源。
第二类 (使用镜像仓库或github加速服务)
方式四
使用国内的Git
服务平台或者自建 Git
,自建可以选择使用 gogs
搭建,它可以直接镜像指定的仓库、定时同步更新,使用方便,只需要把依赖库的域名改成指定域名即可。
我们也自建了一个内部使用的 gogs
,本站会员可以免费使用它拉取 SPM
的依赖库。
方式五
使用公益的 GitHub
加速服务,可以安装油猴脚本:Github 增强
,在依赖库的克隆代码位置能看到它提供的加速服务清单,以下列举几个测试可用的加速域名,把 github.com
域名替换掉即可。
- gitclone.com
- hub.fgit.gq
- hub.fgit.ml
- kgithub.com
- github.moeyy.xyz
- ghproxy.com
- hub.njuu.cf
- hub.yzuu.cf
总结
如果有科学上网环境,推荐方式三;
没有科学上网环境,个人项目临时使用推荐方式五;
我现在的是使用方式四,一年多下来速度快且稳定。
本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
· 如若转载,请注明出处:https://www.codeun.com/archives/1004.html ·
评论列表(1条)
用了好几种上面的方法,好不容易网络通畅了,swift-markdown的一个依赖库报错could not find a branch named ‘gfm’ in https://github.com/apple/swift-cmark.git,但是明明有gfm这个分支啊。我真的心累了,博主救救我55555%5B大哭%5B大哭%5D%5D