Fastlane Match с несколькими идентификаторами пакетов с несколькими командами - PullRequest
3 голосов
/ 07 марта 2019

У меня есть проект XCode, который имеет несколько целей. Две из этих целей создают приложения, каждое с собственным идентификатором пакета, для распространения через идентификатор группы разработчиков Enterprise, а одна цель - через идентификатор группы разработчиков App Store. Я пытаюсь настроить 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, чтобы хорошо играть с обоими идентификаторами моей команды по различным идентификаторам приложений?

1 Ответ

1 голос
/ 07 марта 2019

Вы можете использовать переменные окружения .

  • Создайте два файла с именами .env.target1 и .env.target2.
  • Определите MATCH_APP_IDENTIFIER , FASTLANE_TEAM_ID и MATCH_USERNAME в обоих файлах, используя соответствующие значения. Вы можете использовать .env и .env.default для общих значений, чтобы избежать дублирования или оставить их в Matchfile / Appfile .
  • Определите полосу в вашем Fastfile, которая использует match. †
  • Выполнить сопоставление с помощью следующей команды: fastlane <lane-name> --env target1

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