使用 Xcode 11 将 SPM 下载的包保存到项目 GIT 中

Save packages downloaded by SPM into project GIT using Xcode 11

我开始使用集成了 SPM 的新 Xcode 11。

我向我的项目添加了第一个依赖项:

但检测到文件未提取到我的项目文件夹中,而是提取到 Xcode 的缓存中:

我想将所有依赖文件提交到我的主项目存储库中,所以我的问题是:

是否可以使用 Xcode 11 通过 SPM 更改获取的包的位置?

已设置 SwiftPM 集成来防止这种情况。它将文件克隆到 DerivedData/ProjectName-[RandomStuff]。您应该将 Package.resolved 提交到存储库中,以确保您在项目的克隆中获得每个依赖项的相同版本。

这在某种程度上是可能的,尽管解决方案不一定是好的或很好的做法,所以我不推荐。

  1. 将工作区设置中的 DerivedData 设置为相对于工作区。
  2. 添加git忽略规则,以便包含workspace/WORKSPACE_NAME_DIR/SourcePackages/checkouts 和相关文件。也许最好确保不包含存储库目录。
  3. 添加 运行 脚本阶段以删除 .git 和 .git 忽略结帐目录中的文件。

显然,这主要是因为与 SPM 的工作方式作斗争而变得脆弱。工作区设置是针对每个人的,因此在团队中效果不佳。