Fastlane多应用程序匹配

13

我拥有多个应用的开发者账户。我正在使用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中?

当我只有一个开发者账户用于多个应用程序时,最佳实践是什么?

  • 为Fastlane Match创建不同的Git存储库以针对不同的应用程序

  • 为所有应用程序创建单个存储库。

目前我正在使用第一种方法。如果您有更好的建议,请帮忙提供。


1
您可以使用“match_branch”选项将每个应用程序分别放置在单个匹配存储库的不同分支中。但是,这需要为每个分支创建证书。 - atreat
1
如果您想为多个应用程序使用相同的证书,我建议使用单个存储库和一个分支。 - atreat
1个回答

21

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

Match不支持此用例。Match只支持同步它创建的配置文件。如果您想解决这个问题,可以手动创建一个相同的、加密的git仓库,然后就可以从那里工作了。有一些修改的说明在高级文档页面中。

或者,您可以查看match的源代码,它在底层使用cert和sigh,为您的特定用例创建自定义操作。

但是,老实说,最简单的方法是销毁现有的证书并使用match创建新的证书。

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

澄清一下:

  • cert将获取(或根据需要创建)代码签名证书
  • sigh将获取(或根据需要创建)由代码签名证书签名的配置文件
  • match调用上述命令,并通过加密的git仓库同步它们的输出

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

在我有一个开发人员帐户用于多个应用程序的情况下,最佳实践是什么?

我不知道这里是否有最佳实践。您有几种选择,每种选择都有自己的权衡:

  • 为每个应用使用一个仓库。这可以通过项目完全隔离来获得安全性的好处,但您需要手动同步分发配置文件(使用我上面链接的高级技术)。
  • 使用一个仓库,为每个应用使用一个分支。这使您可以将相同的证书同步到多个应用程序中,但存在安全风险,因为任何具有访问权限的人员都比他们所需的权限更多(除非每个人都在所有东西上工作)。
  • 使用一个分发凭据的仓库,以及一个额外的每个应用开发凭据的仓库。

第二个选项将需要使用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

对于第二个问题,我的意思是匹配会为我完成所有事情,但当我进入Xcode时,有时需要手动选择合适的配置文件。 - Parth Adroja
@AaronBrager 你认为以下选项怎么样: -一个仓库有多个应用程序:每个应用程序一个分支与所有应用程序在同一分支之间的区别是什么? -一个仓库每个团队一个分支:团队A是普通开发者账户,团队B是企业账户。每个分支也将有多个应用程序。 - Xavi A.
如果我可以接受使用多个独立的git存储库,那么我能否在多个应用程序(比如10个应用程序)中使用“fastlane match”?由于match正在尝试为每个存储库创建新的开发证书,而Apple不允许我拥有超过2个证书,因此我似乎无法在两个以上的存储库上使用它... :( - adamsfamily
不,你只能拥有2个分发证书。我相信你可以拥有任意数量的开发证书。 - Aaron Brager

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接