12

我有多个应用程序的开发者帐户。我正在使用 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 中为不同的配置手动设置配置文件。哪个命令有助于在 Xcode 中配置由 match、cert、sigh 生成的证书?

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

  • 为不同的应用程序创建不同的 git repo 以进行 fastlane 匹配

  • 所有应用程序的单一存储库。

现在我正在使用第一个。如果您有更好的建议,请帮忙。

4

1 回答 1

18

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

match 不支持此用例。Match 仅支持同步它创建的配置文件。如果你想解决这个问题,你可以手动创建一个相同的、加密的 git repo,它会从那里开始工作。在高级文档页面上有修改说明

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

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

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

澄清:

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

因此,如果要配置证书,请使用 cert。

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

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

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

第二个选项将需要使用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
于 2018-02-02T21:43:53.480 回答