与多个团队的多个包ID进行Fastlane比赛

时间:2019-03-07 14:46:03

标签: ios fastlane fastlane-match

我有一个具有多个目标的Xcode项目。其中两个目标产生的应用程序(每个都有自己的捆绑包ID)将通过企业开发人员团队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 个答案:

答案 0 :(得分:1)

您可以使用environment variables

  • 创建两个文件,分别名为 .env.target1 .env.target2。
  • 在两个文件中使用适当的值定义 MATCH_APP_IDENTIFIER FASTLANE_TEAM_ID MATCH_USERNAME 。您可以将 .env .env.default 文件用于共享值,以避免重复或将它们留在匹配文件 / Appfile < / strong>。
  • 在Fastfile中定义一个使用match的通道。 †
  • 使用以下命令执行匹配:fastlane <lane-name> --env target1

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