小编Ele*_*ena的帖子

在 CI 上使用 Fastlane 进行代码签名的最佳方式

在您对我的问题感到生气之前,我知道没有一种设置 Fastlane 的最佳方法,但我想更好地了解您在开始使用它时可以采用的不同方法。

我正在为一个项目设置 Fastlane。现在我只在我的本地机器上有它,但我想在 CI 环境中设置它(在我的例子中是 GitLab-CI,但我想它并不那么重要)。

披露,我不仅是设置 Fastlane 的新手,而且是我自己设置 CI 的新手(不过我已经使用了它们,)

阅读代码签名文档(https://docs.fastlane.tools/codesigning/getting-started/)后,我可以看到不同的替代方案,但我不确定它们在 CI 环境中的限制是什么。总之,在以下情况下签署构建的好做法是什么:提交到 Testflight、运行单元测试、提交到 AppStore 等等。

选项是:

  • match
  • certsigh
  • Xcode 的代码签名功能
  • 手动

到目前为止我的论文:

  • match

    • 设置和使用比其他选项更难,但有一个指南:https : //codesigning.guide/
    • 在我看来,它是最“专业”的选择。
    • 我知道对于现有项目,它会撤销当前的证书。
      1. 是不是只有第一次?
      2. 如果 Fastlane 已经使用新证书,当前证书被撤销的陷阱是什么?我看到很多人试图阻止这种情况(例如this)。但是,现在只有我作为开发人员,我们没有任何 CI,所以我猜它不会对我产生太大影响。但是,这对于其他项目设置来说很方便。
    • 对于此设置,您需要一个私有存储库来存储加密证书。
      1. 当我与我的 Android 同事讨论这个问题时,他对使用版本控制系统来存储证书感到非常惊讶。
      2. 那究竟是什么原因呢?我的理解(也许我错了)是,通过这种方式,团队中的所有开发人员都可以从match拥有有效的开发配置文件中受益。不确定发布到 Testflight/Appstore 的好处。
  • certsigh

    • 要使用它只需要在 build_app 之前几行:

      get_certificates         # cert
      get_provisioning_profile # sigh
      build_app
      
      Run Code Online (Sandbox Code Playgroud)
    • 它下载项目根目录中的证书和配置文件。

      1. 我想应该有一种方法可以指定将它们放在哪里而不是在那里,也许吧?
      2. 我们应该忽略这些文件或在此之后清理存储库。我认为他们不应该提交到存储库。
      3. 它需要这个带有 app_identifier、apple_id 等的 Appfile,或者至少是我第一次设置 Fastlane …

continuous-integration match ios fastlane fastfile

7
推荐指数
1
解决办法
710
查看次数

标签 统计

continuous-integration ×1

fastfile ×1

fastlane ×1

ios ×1

match ×1