Распространяйте предварительные сборки 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.
  • Физическое устройство iOS для тестирования.

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

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

2. Начните работу

Настройка скоростной полосы

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

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

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

Вам также потребуется установить Firebase CLI . Если вы используете 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. Создайте свою первую полосу и используйте действие build_app Fastlane (также известное как 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, чтобы добавить распространение приложений в вашу конфигурацию 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. Пригласите тестировщиков загрузить ваше приложение.

Когда тестировщик принимает приглашение протестировать специальную сборку, у него запрашивается разрешение поделиться своим 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 на своем тестовом устройстве, чтобы получить доступ к выпускам приложений, которые вас пригласили протестировать. Поскольку ваша тестовая сборка является специальной версией, вам также необходимо зарегистрировать тестовое устройство, установив профиль Firebase. После этого к выпускам, которые станут вам доступны, можно будет получить доступ из веб-приложения тестера App Distribution с помощью веб-клипа, добавленного на главный экран вашего устройства.

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

d833407de251b89f.png

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

fd141215e54a938d.png

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

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

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

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

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

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

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

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

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

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

  1. Чтобы экспортировать все UDID, откройте вкладку «Тестеры и группы» .

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

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

папа6d03b6ad78746.png

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

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

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

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

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

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