Bitrise 和 SPM - 如何使用 Bitrise 构建私有 SPM 依赖项?

efe*_*ess 5 xcode gitlab fastlane bitrise swift-package-manager

我们有

  • xcode 项目几乎没有 swift-package-manager 依赖项,但其中一个依赖项托管在 Gitlab 私有存储库上
  • 用于构建和交付我们的应用程序的 fastlane
  • Bitrise 作为 CI 服务

在本地计算机上一切正常 - Xcode 只需要求填写 Gitlab 的身份验证信息(登录/访问令牌),然后依赖关系图就会解析,我们可以构建我们的项目。

但是 Bitrise 在健身房舞台上失败了,错误如下 =(

xcodebuild:错误:无法解析包依赖项:身份验证失败,因为未提供凭据。

如何验证 Bitrise 的 Gitlab 帐户以处理gym stage?

efe*_*ess 3

在过去的一天里,我尝试了以下方法:

  • 尝试将 Package.swift 中的依赖项声明更改为 ssh 样式,例如 git@gitlab.com:CompanyName/PackageName.git (我认为 xcodebuild 可以建立 ssh 连接来获取私有依赖项)
  • 通过 ssh -T git@gitlab.com 检查 gitlab ssh 连接(连接正常)
  • 尝试按照Apple 的建议将已知的 gitlab 主机添加到 ~/.ssh/known_hosts
  • 通过 ssh 连接到正在运行的 Bitrise 构建,以在运行时手动设置 ssh 设置
  • 以不同的顺序排列这些方法

没有任何帮助。直到我尝试以下一个

  • 使用 netrc 验证主机

工作流程编辑器中有一个特殊的构建步骤,您可以在其中设置 gitlab 访问数据。在 SPM 解析阶段触发之前设置此步骤,并且有关缺少凭据的烦人错误消失。