fastlane 与多个应用程序匹配

Fastlane match with multiple apps

我有多个应用程序的开发者帐户。我正在使用 fastlane match 来生成证书和配置文件。现在使用 match 它会创建新的证书。检查下面的代码我是如何生成它的。

lane :GenerateCerts do
    match(app_identifier: "dev", type: "development")
    match(app_identifier: "stage", type: "development")
    match(app_identifier: "stage", type: "appstore")
end

我已经超过了开发者帐户的限制以生成新的 iOS 分发证书,所以我无法生成新的。但我想开发门户上的证书可以用于生成配置文件。

如何使用门户中已有的证书生成配置文件?

此外,我需要在 Xcode 中针对不同的配置手动设置配置文件。哪个命令有助于配置由 match、cert、sigh 生成的 Xcode 中的证书?

当我有多个应用的​​单个开发者帐户时,以下情况的最佳做法是什么?

目前我用的是第一个。如果大家有更好的建议请帮忙

How can I use the certificate already there in portal to generate profiles?

匹配不支持此用例。 Match 仅支持同步它创建的配置文件。如果你想解决这个问题,你可以手动创建一个相同的、加密的 git 存储库,它将从那里开始工作。 the advanced documentation page

上有修改一个的说明

相反,您可以查看 match 的源代码,它在后台使用 cert 和 sigh,并为您的特定用例创建自定义操作。

但老实说,销毁现有证书并制作新证书更容易。

Also, I need to manually set the profiles in Xcode for different configurations. Which command could be helpful to configure certificates in Xcode generated by match, cert, sigh?

澄清一下:

  • cert 将获得(或在必要时创建)代码签名证书
  • 叹息 将获得(或创建,如果需要的话)使用代码签名证书签名的配置文件
  • match 调用上述命令并通过加密的 git repo
  • 同步它们的输出

所以如果你想配置证书,使用cert.

What is the best practice for following case when I have single developer account for multiple apps?

据我所知,这里没有真正的最佳实践。您有几个选项,每个选项都有自己的权衡:

  • 每个应用使用一个存储库。这得益于项目的完全隔离,这有助于安全目的,但您需要手动同步分发配置文件(使用我在上面链接的高级技术)
  • 使用一个存储库,每个应用程序一个分支。这可以让您为多个应用程序同步相同的证书,但存在安全风险,因为任何有权访问此存储库的人都比他们需要更多的特权(除非每个人都在做每件事)
  • 使用一个存储库作为分发凭据,使用一个额外的每个应用程序存储库作为开发凭据。

第二个选项需要使用 match_branch 选项,该选项可以在您的 Fastfile 中传递,或者(我的偏好)在您的 Matchfile 中指定,使您的 Fastfile 更清洁。对于最后一个选项,您可以使用 for_lane 命令在从特定通道调用时覆盖选项。例如,您的 Matchfile 可能看起来像:

git_url "git@github.com:my_org/my_repo_name.git"

type 'development'
readonly true

for_lane :deploy_to_app_store do
  type 'appstore'
  git_url "git@github.com:my_org/my_distribution_cert_repo.git"
end