Автоматизация 2FA с использованием Fastlane / CircleCI - PullRequest
0 голосов
/ 05 апреля 2019

Как правильно настроить 2FA для бета-загрузки в iTunesConnect / TestFlight?

Есть так много ссылок и ответов на форумах, но ни один не решает проблему.

В настоящее время я добавил переменные среды в CircleCI, в том числе пароль для конкретного приложения, созданный для AppleID.

У меня есть полоса в Fastlane, которая выглядит следующим образом

desc "Alpha build"
  lane :alpha do
    match(type: "adhoc")
    gym(export_method: "ad-hoc")
    upload_to_testflight(skip_submission: true)
  end

Я запускаю команду preauth ниже перед альфа-полосой

- run:
    name: Spaceship pre-auth for 2FA
    command: bundle exec fastlane spaceauth -u [redacted].com

Fastlane, похоже, не работает при авторизации, даже если пароль правильный

Please check your credentials and try again.
This could be an issue with App Store Connect,
Please try unsetting the FASTLANE_SESSION environment variable

Если я удаляю команду spaceauth, то окружность завершается неудачно из-за ожидания ожидания 2FA.

Сайт Fastlane говорит, что нет необходимости использовать spaceauth, если не используются дополнительные API для подключения к магазину приложений, такие как загрузка метаданных и т. Д. В нем говорится, что для загрузки в testflight достаточно только пароля для конкретного приложения, хотя это не работает либо.

Кто-нибудь решил эту проблему, кто может посоветовать, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 18 июля 2019

Используйте REST API сервера CI для обновления значения параметра конфигурации FASTLANE_SESSION.В нашем случае он определен в одном месте, и он повторно используется всеми заданиями, для которых требуется авторизация в Dev Center / App Store Connect.Я не изучал детали, но я уверен, что есть способ обновить параметр задания / проекта через вызов REST.Опять же, запланируйте задание, которое запускает spaceauth и использует REST API для установки нового значения.

0 голосов
/ 05 апреля 2019

Документы там не правы - и это моя вина. Я обновил документацию до того, как фактический код, позволяющий это объединить.

В настоящее время лучше всего создать вторую учетную запись, для которой не включен 2FA, или использовать локально spaceauth, а затем скопировать возвращенное значение в переменную ENV вашего поставщика CI, хотя, вероятно, это будет работать только 24 часа. , В настоящее время мы изучаем, как улучшить это.

...