Fastlane 与多个团队的多个捆绑 ID 匹配

Posted

技术标签:

【中文标题】Fastlane 与多个团队的多个捆绑 ID 匹配【英文标题】:Fastlane Match with multiple bundle ids with multiple teams 【发布时间】:2019-03-07 14:46:02 【问题描述】:

我有一个具有多个目标的 Xcode 项目。其中两个目标生成应用程序,每个都有自己的捆绑 ID,通过 Enterprise 开发人员团队 ID 分发,一个目标通过 App Store 开发人员团队 ID 分发。我正在尝试为此项目设置 Fastlane Match,但我无法使其与多个团队打交道。

这是我Matchfile的内容:

git_url("git@github.com:myorg/certificates-repo.git")
git_branch("master")

app_identifier([
    "my.app.prod",   # <-- Team ID A
    "my.app.dev",    # <-- Team ID B
    "my.app.staging" # <-- Team ID B
])

clone_branch_directly(true)

还有我的Appfile

team_id "Team ID B"
apple_id "my@apple.id"

当从命令行运行fastlane match 来初始化Fastlane Match 时,我得到这个错误:

==========================================
Could not find App ID with bundle identifier 'my.app.prod'
You can easily generate a new App ID on the Developer Portal using 'produce':

fastlane produce -u my@apple.id -a my.app.prod --skip_itc

You will be asked for any missing information, like the full name of your app
If the app should also be created on App Store Connect, remove the --skip_itc from the command above
==========================================

An app with that bundle ID needs to exist in order to create a provisioning profile for it

这是有道理的,因为它不知道Team ID A。我可以调整 Fastlane Match 以在各种应用标识符中同时使用我的团队 ID 吗?

【问题讨论】:

【参考方案1】:

您可以使用environment variables。

创建两个名为 .env.target1.env.target2. 的文件 使用适当的值在两个文件中定义 MATCH_APP_IDENTIFIERFASTLANE_TEAM_IDMATCH_USERNAME。您可以将 .env.env.default 文件用于共享值以避免重复或将它们留在您的 Matchfile/Appfile。 在您的 Fastfile 中定义一个使用 match 的通道。 † 使用以下命令执行匹配:fastlane &lt;lane-name&gt; --env target1

lane :<lane-name> do
    match()
end

【讨论】:

从命令行运行 fastlane match 以初始化 match 和证书存储库时出现错误消息。从通道运行匹配时,它会获取证书。我还没有到。现在澄清问题。 @MikkelSelsøe 您是否尝试过使用一个团队的详细信息初始化 Match,然后使用我建议的解决方案? 我最终在证书存储库中使用每个团队一个分支来解决它,如下所述:docs.fastlane.tools/actions/match/#multiple-teams

以上是关于Fastlane 与多个团队的多个捆绑 ID 匹配的主要内容,如果未能解决你的问题,请参考以下文章

应用组和多个捆绑 ID

Fastlane Deliver 说 iTunesConnect 上不存在捆绑标识符

将 INDEX/MATCH 与多个条件和多个匹配项连接起来

Jenkins iOS fastlane 构建:找不到“捆绑程序”

有没有办法在没有 Fastlane 的相应应用程序的情况下创建捆绑标识符?

使用firebase iOS swift创建具有相同捆绑ID的多个环境?