Распространяйте предварительные сборки iOS быстрее с помощью App Distribution и Fastlane.

1. Прежде чем начать

4cddd34bd261cea0.png

В этой лабораторной работе вы узнаете, как использовать Firebase App Distribution и его плагин fastlane для распространения приложения iOS среди тестировщиков, сбора UDID тестовых устройств и регистрации их в профиле обеспечения вашего приложения, чтобы вы могли быстро получать специальные сборки для тестировщиков. ' Руки.

Что вы узнаете

  • Как загрузить и распространить предварительное приложение iOS (Ad Hoc) среди тестировщиков с помощью Firebase App Distribution и fastlane .
  • Как зарегистрироваться в качестве тестировщика и загрузить распространяемое приложение на тестовое устройство.
  • Как быстро зарегистрировать тестовые устройства, экспортировав идентификаторы UDID тестовых устройств с помощью подключаемого модуля Fastlane App Distribution.
  • Как обновить профиль подготовки вашего приложения и повторно загрузить его для распространения.

Что вам понадобится

  • Аккаунт Google
  • Компьютер Apple с установленным XCode 11.7+
  • Специальное предварительное приложение для iOS, созданное в Xcode.
  • Платная учетная запись Apple Developer
  • Физическое устройство iOS для тестирования.

Приложение-симулятор iOS будет работать в большинстве лабораторий кода, но симуляторы не могут загружать выпуски.

Вы по-прежнему можете убедиться, что установка работает, убедившись, что кнопка «Загрузить» отображается в веб-приложении тестера распространения приложений.

2. Начать

Настроить полосу обгона

App Distribution интегрируется с Fastlane , чтобы вы могли автоматизировать распространение предварительных сборок вашего приложения. Распространение приложений интегрируется с вашей конфигурацией полосы быстрого доступа .

  1. Установите и настройте fastlane .
  2. Запустите fastlane init в корневом каталоге вашего проекта во время установки и выберите «Ручная настройка». Вы увидите подкаталог с именем fastlane , который содержит файлы Fastfile , Appfile и Pluginfile , которые вы будете использовать для настройки fastlane .

Установите интерфейс командной строки Firebase

Вам также потребуется установить интерфейс командной строки Firebase . Если вы используете macOS или Linux, вы можете запустить следующую команду cURL:

curl -sL https://firebase.tools | bash

Если вы используете Windows, прочитайте инструкции по установке , чтобы получить автономный двоичный файл или установить его через npm .

После того, как вы установили CLI, запуск firebase --version должен сообщить о версии 12.0.0 или выше:

$ firebase --version
12.0.0

3. Создайте свое приложение с помощью Fastlane

Создайте свое приложение

  1. Установите некоторые глобальные переменные для fastlane в файле ./fastlane/Appfile. Укажите идентификатор вашего приложения и ваш Apple ID:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Создайте свою первую дорожку и используйте действие fastlane build_app (также известное как gym ) для создания своего приложения, добавив следующее в ваш ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Подпишите свое приложение для распространения.

В этой лаборатории кода вы будете управлять своей собственной сертификацией и профилем с помощью get_certificates (также известного как cert ), который генерирует сертификаты подписи локально и сохраняет все в вашей цепочке ключей macOS. Однако, как правило, вы захотите использовать sync_code_signing action fastlane sync_code_signing (также известное как match ) для безопасного управления сертификатами и профилями подписи кода вашей команды.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Настройте профиль подготовки для своего приложения с помощью действия get_provisioning_profile (также известного как sigh ). Это позволяет вам делиться своим приложением с тестировщиками.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Необязательно] Если вы никогда раньше не запускали свое приложение, выполните следующую команду, чтобы создать приложение в консоли разработчика Apple:

$ fastlane produce --skip_itc

  1. Наконец, создайте свое приложение, запустив файл lane.

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

$ fastlane build

Если вы столкнулись с какими-либо проблемами, обратитесь к руководству по устранению неполадок с полосой пропуска .

4. Загрузите свое приложение в Firebase

Теперь, когда вы создали свое приложение, вы готовы загрузить его в App Distribution.

Создайте и настройте проект Firebase

  1. Войдите в Firebase.
  2. В консоли Firebase создайте или добавьте новый проект и назовите его «UDID Export Codelab».

Вам не нужно включать Google Analytics для этого проекта.

  1. Щелкните Создать проект .

Добавьте свое iOS-приложение в проект

  1. Щелкните значок iOS, чтобы создать новое приложение Firebase для iOS, и введите идентификатор пакета вашего приложения.

9c26c130a6c42212.png

  1. Пропустите следующие несколько шагов, а затем нажмите Продолжить на консоль . Позже вы добавите SDK в свое приложение.

Теперь ваш проект и приложение доступны на странице «Обзор проекта» .

66f79cc8a97fa8e9.png

Включить распространение приложений

  1. В разделе «Выпуск и мониторинг» нажмите «Распространение приложений» .
  2. Приняв условия, нажмите «Начать», чтобы включить распространение приложений для вашего приложения.

460213326c2784ae.png

Настроить раздачу в fastlane

  1. Выполните следующую команду из корня вашего проекта iOS, чтобы добавить App Distribution в вашу конфигурацию fastlane .

Если команда предложит вам вариант, выберите Вариант 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Подтвердите, что плагин установлен:

$ fastlane

Вывод должен показать fastlane-plugin-firebase_app_distribution в списке установленных плагинов.

  1. После подтверждения установки плагина выберите вариант 0 для отмены.

Аутентифицируйте свой проект Firebase

Чтобы использовать плагин fastlane , вы должны сначала аутентифицировать свой проект Firebase.

  1. Выполните следующую команду, чтобы подключить CLI к вашей учетной записи Google:

$ firebase login

  1. Когда команда напечатает ссылку для проверки подлинности, откройте ссылку в браузере.
  2. При появлении запроса войдите в свою учетную запись Google и предоставьте разрешение на доступ к вашему проекту Firebase.

Распространяйте свое приложение

Теперь вы готовы распространять свое приложение.

  1. В верхней части вашего ./fastlane/Fastfile определите переменную с именем firebase_app_id . Замените <your_app_id> идентификатором приложения Firebase для созданного вами приложения (его можно найти на странице настроек проекта ).

Fastfile написан на Ruby, поэтому используйте синтаксис Ruby для определения переменных.

firebase_app_id = "<your_app_id>"
  1. Добавьте новую полосу с именем distribute , которая вызывает полосу сборки, а затем распространяет ваше приложение с помощью действия firebase_app_distribution .
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Запустите новую полосу, чтобы собрать приложение и создать дистрибутив.

$ fastlane distribute

На этом этапе ваш Fastfile должен выглядеть следующим образом:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

После обновления консоли Firebase вы увидите новую версию своего приложения.

c59dc1a94de3bf3c.png

5. Пригласите тестировщиков загрузить ваше приложение

Когда тестер принимает приглашение протестировать сборку Ad Hoc, у него запрашивается разрешение поделиться своим UDID. Если они согласны, App Distribution собирает информацию об их устройствах и уведомляет вас по электронной почте. В этом разделе вы добавите себя в качестве тестировщика, чтобы загрузить и протестировать распространяемое вами приложение.

Добавьте себя в качестве тестировщика в релиз

  1. В firebase_app_id в верхней части файла Fastfile создайте переменную для хранения тестировщиков и укажите свой собственный адрес электронной почты, а также другие необязательные адреса электронной почты, которые вы хотели бы попробовать.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Примените метод Ruby Array#join , чтобы преобразовать массив app_testers в строку с разделителями-запятыми, которую ожидает параметр testers . Затем передайте результат в параметр testers для firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

На этом этапе ваш Fastfile должен выглядеть так:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Снова бегите по дорожке.

$ fastlane distribute

После того, как вы запустите полосу, добавленные вами тестировщики получат электронное письмо с приглашением от App Distribution, уведомляющее их о новом доступном выпуске. В консоли Firebase теперь вы можете видеть тестировщиков, которых вы добавили в выпуск вашего приложения.

2e0fc9603b868af8.png

Поскольку вы указали свой адрес электронной почты, вы получите электронное письмо от Firebase App Distribution с приглашением протестировать приложение. Теперь ты первый тестировщик! Перейдите к разделу ниже, чтобы настроить тестовое устройство в качестве тестера.

Зарегистрируйте тестовое устройство

Вам как тестировщику необходимо войти в Google на тестовом устройстве, чтобы получить доступ к выпускам приложений, которые вы получили приглашение протестировать. Поскольку ваша тестовая сборка является выпуском Ad Hoc, вам также необходимо зарегистрировать тестовое устройство, установив профиль Firebase. После этого к выпускам, которые станут доступны вам, можно будет получить доступ из веб-приложения тестера распространения приложений, используя веб-клип, добавленный на главный экран вашего устройства.

  1. На тестовом устройстве iOS откройте электронное письмо, отправленное из службы распространения приложений Firebase, и коснитесь ссылки «Начать» . Обязательно откройте ссылку в Safari.
  2. Теперь вы находитесь в веб-приложении тестера распространения приложений. На появившейся странице войдите в свою учетную запись Google и нажмите Принять приглашение.

d833407de251b89f.png

  1. Теперь вы можете увидеть выпуски, на которые вас пригласили. Нажмите «Зарегистрировать устройство» в одной из версий.

fd141215e54a938d.png

  1. При появлении запроса загрузите профиль Firebase, затем установите профиль в приложении «Настройки».

Установка профиля дает Firebase разрешение на:

  • Зарегистрируйте тестовое устройство, собрав уникальный идентификатор устройства (UDID).

Firebase отправляет всем владельцам и редакторам проекта Firebase электронное письмо с UDID тестового устройства.

  • Установите веб-клип на главный экран тестового устройства. Веб-клип открывает веб-приложение тестера App Distribution, которое позволяет вам установить и получить доступ ко всем вашим тестовым приложениям.

В веб-приложении тестера распространения приложений ваше тестовое устройство теперь зарегистрировано для выпуска вашего приложения.

fe93d649dfa25877.png

Теперь, когда вы предоставили Firebase UDID своего тестового устройства, вы можете возобновить работу в качестве разработчика. На вкладке «Тестеры» панели «Распространение приложений» информация о вашем тестировщике теперь отображается под выпуском вашего приложения со статусом «Принято»:

7b9f665a63a384cf.png

В следующем разделе вы добавите UDID устройства в профиль подготовки вашего приложения, а затем создадите версию своего приложения, которая работает с вашим тестовым устройством.

Экспортируйте UDID устройств тестера

Как разработчик, вы получите электронное письмо от Firebase, содержащее UDID тестового устройства. В качестве опции App Distribution упрощает сбор нескольких новых UDID устройств одновременно, позволяя экспортировать их непосредственно из консоли Firebase в виде необработанного текстового файла.

  1. Чтобы экспортировать все UDID, откройте вкладку Testers & Groups .

241a9936898a2fc0.png

  1. Щелкните Экспорт идентификаторов Apple UDID .

bcf0c26c522d9b4e.png

Файл должен содержать UDID вашего тестового устройства.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

UDID также можно экспортировать из командной строки с помощью fastlane , что вы сделаете в следующем разделе.

6. Обновите профиль подготовки вашего приложения и перестройте его.

Теперь вы добавите UDID своего тестового устройства в профиль подготовки вашего приложения, перестроите версию своего приложения, которая работает на вашем устройстве, и распространите новую версию.

Добавить полосу экспорта UDID

  1. Добавьте еще одну переменную вверху вашего Fastfile и задайте для нее путь к файлу, куда будут загружаться UDID устройств ваших тестировщиков.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Настройте новую дорожку, которая использует действие экспорта UDID подключаемого модуля App Distribution для загрузки UDID тестера, как вы это делали с консоли.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Запустите следующую полосу, чтобы загрузить UDID.

$ fastlane download_udids

  1. Распечатайте загруженный файл, который должен содержать UDID тестового устройства.

$ cat tester_udids.txt

Добавление устройств в консоль разработчика Apple

  1. Создайте следующую полосу, чтобы добавить UDID в список ваших устройств в консоли разработчика Apple, чтобы вы могли добавить их в свой профиль подготовки с помощью действия register_devices fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Затем запустите полосу:

$ fastlane add_new_devices

После этого вы должны увидеть новые устройства в списке устройств консоли разработчика.

Добавьте устройства в свой профиль обеспечения

  1. Добавьте аргумент force на шаг профиля подготовки в полосе build , чтобы заставить его подбирать новые устройства при каждой сборке.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Повторно запустить полосу для сборки и загрузки

Теперь вы обновите свою полосу distribute новыми полосами, чтобы добавить устройства в профиль подготовки, заново собрать приложение и затем распространить его.

  1. Вызовите новые дорожки из distribute :
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. Запустите полосу distribute :

$ fastlane distribute

На этом этапе ваш Fastfile должен выглядеть так:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Скачать релиз с тестового устройства

Теперь, когда ваше приложение включает UDID тестовых устройств, их можно установить на тестовые устройства.

e275f73d57cc8fb1.png

  1. На тестовом устройстве вернитесь в веб-приложение тестера распространения приложений, используя ссылку в электронном письме или значок на главном экране устройства.

Когда вы перейдете к приложению кодовой лаборатории UDID, вы увидите, что выпуск готов к загрузке.

папа6d03b6ad78746.png

  1. Если вы используете физическое устройство, нажмите «Загрузить», затем установите и запустите приложение!

7. Поздравления

Теперь вы настроили App Distribution и Fastlane для автоматизации процесса тестирования перед выпуском. Теперь, когда вы хотите пригласить дополнительных тестировщиков или добавить их UDID в свое приложение, вам нужно будет выполнить только одну команду: fastlane distribute .

Так что больше не нужно индивидуально собирать UDID у тестировщиков или обращаться к консоли разработчика Apple для обновления списков устройств или профилей инициализации. Вам даже не нужно открывать XCode!

Этот рабочий процесс легко настроить для ежечасного или ежедневного запуска в среде непрерывной интеграции.

дальнейшее чтение