Fastlane матч с несколькими приложениями

У меня есть аккаунт разработчика с несколькими приложениями. Я использую 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 Distribution, поэтому я не могу создать новый. Но я думаю, что сертификат на портале dev можно использовать для создания профилей.

Как я могу использовать сертификат уже на портале для создания профилей?

Кроме того, мне нужно вручную установить профили в XCode для разных конфигураций. Какая команда может быть полезна для настройки сертификатов в XCode, генерируемых match, cert, sigh?

Как лучше использовать следующий случай, когда у меня есть одна учетная запись разработчика для нескольких приложений?

  • Создание разных git-репо для разных приложений для fastlane match

  • Единый репо для всех приложений.

Сейчас я использую первый. Если у вас есть предложения, пожалуйста, помогите.

1 ответ

Решение

Как я могу использовать сертификат уже на портале для создания профилей?

Этот вариант использования не поддерживается совпадением. Match поддерживает только созданные им профили синхронизации. Если вы хотите обойти это, вы можете вручную создать идентичное зашифрованное git-репо, и оно будет работать оттуда. Инструкции по его модификации есть на странице расширенной документации.

Вместо этого вы можете просмотреть исходный код на совпадение, в котором используются сертификаты и сертификаты, и создать настраиваемое действие для конкретного случая использования.

Кроме того, мне нужно вручную установить профили в 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
Другие вопросы по тегам