Catch up on highlights from Firebase at Google I/O 2023. Learn more

Распространяйте приложения iOS среди тестировщиков с помощью Fastlane

Вы можете распространять сборки среди тестировщиков с помощью fastlane — платформы с открытым исходным кодом, которая автоматизирует создание и выпуск приложений для iOS и Android. Он следует простым инструкциям, определенным в Fastfile . После настройки fastlane и Fastfile вы можете интегрировать App Distribution с вашей конфигурацией fastlane.

Шаг 1. Настройте полосу быстрого доступа

  1. Установите и настройте fastlane .

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

    fastlane add_plugin firebase_app_distribution

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

Шаг 2. Авторизуйтесь в Firebase

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

Шаг 3. Настройте свой Fastfile и распространите свое приложение

  1. В полосе ./fastlane/Fastfile добавьте блок firebase_app_distribution . Используйте следующие параметры для настройки раздачи:
    параметры firebase_app_distribution
    app

    Требуется только в том случае, если ваше приложение не содержит файл конфигурации Firebase ( GoogleService-Info.plist ) : идентификатор приложения Firebase вашего приложения. Идентификатор приложения можно найти в консоли Firebase, на странице «Общие настройки» .

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    Путь к вашему файлу GoogleService-Info.plist относительно пути к заархивированному продукту. По умолчанию установите GoogleService-Info.plist .

    Файл используется для получения идентификатора приложения Firebase вашего приложения, если параметр app не указан.

    firebase_cli_token

    Токен обновления, который печатается при аутентификации среды CI с помощью интерфейса командной строки Firebase (дополнительную информацию см. в разделе Использование интерфейса командной строки с системами CI ).

    service_credentials_file

    Путь к json-файлу вашего сервисного аккаунта Google. См. выше, как пройти аутентификацию с использованием учетных данных служебной учетной записи .

    ipa_path

    Заменяет apk_path (устаревший). Абсолютный путь к файлу IPA, который вы хотите загрузить. Если не указано, Fastlane определяет местоположение файла по дорожке, в которой файл был сгенерирован.

    release_notes
    release_notes_file

    Примечания к выпуску для этой сборки.

    Вы можете указать примечания к выпуску напрямую:

    release_notes: "Text of release notes"

    Или укажите путь к текстовому файлу:

    release_notes_file: "/path/to/release-notes.txt"
    testers
    testers_file

    Адреса электронной почты тестировщиков, которых вы хотите пригласить.

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

    testers: "ali@example.com, bri@example.com, cal@example.com"

    Или вы можете указать путь к текстовому файлу, содержащему список адресов электронной почты, разделенных запятыми:

    testers_file: "/path/to/testers.txt"
    groups
    groups_file

    Группы тестировщиков, которых вы хотите пригласить (см. Управление тестировщиками ). Группы задаются с помощью групповые псевдонимы , который вы можете найти в консоли Firebase.

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

    groups: "qa-team, trusted-testers"

    Или вы можете указать путь к текстовому файлу, содержащему разделенный запятыми список имен групп:

    groups_file: "/path/to/groups.txt"
    debug

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

Например:

platform :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )

    end
end

Чтобы сделать сборку доступной для тестировщиков, запустите свою полосу:

fastlane <lane>

Возвращаемое значение действия — это хэш, представляющий загруженный релиз. Этот хэш также доступен с использованием lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] . Дополнительные сведения о доступных полях в этом хеше см. в документации по REST API .

Плагин fastlane выводит следующие ссылки после загрузки релиза. Эти ссылки помогут вам управлять двоичными файлами и убедиться, что тестировщики и другие разработчики имеют правильный выпуск:

  • Ссылка на консоль Firebase, отображающую один выпуск. Вы можете поделиться этой ссылкой с другими разработчиками в вашей организации.
  • Ссылка на выпуск в интерфейсе тестировщика (веб-клип iOS), которая позволяет тестировщикам просматривать примечания к выпуску и устанавливать приложение на свое устройство. Тестировщику необходим доступ к выпуску, чтобы использовать ссылку.
  • Подписанная ссылка, которая напрямую загружает и устанавливает двоичный файл приложения (файл IPA). Ссылка действительна через час.

После того, как вы распространите свою сборку, она будет доступна на панели управления распространением приложений консоли Firebase в течение 150 дней. Когда срок действия сборки истекает через 30 дней, в консоли и в списке сборок тестировщика на его тестовом устройстве появляется уведомление об истечении срока действия.

Тестировщики, которые ранее не были приглашены для тестирования приложения, получают приглашения по электронной почте, чтобы начать работу. Существующие тестировщики получают уведомления по электронной почте о том, что новая сборка готова к тестированию. Чтобы узнать, как установить тестовое приложение, см. раздел Настройка в качестве тестировщика . Вы можете отслеживать статус каждого тестировщика, чтобы определить, приняли ли они приглашение и загрузили ли они приложение в консоли Firebase.

(Необязательно) Чтобы автоматически увеличивать номер сборки каждый раз, когда вы создаете новый выпуск в App Distribution, вы можете использовать действие firebase_app_distribution_get_latest_release и действие increment_build_number . В следующем коде показан пример автоматического увеличения номера сборки:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end

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

Шаг 4 (необязательно). Управление тестировщиками для дистрибутива

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

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

Использовать Fastfile

# Use lanes to add or remove testers from an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

Выполнить действия в полосе быстрого доступа

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

Вы также можете указать тестировщиков, используя --file="/path/to/testers.txt вместо --emails .

Задачи firebase_app_distribution_add_testers и firebase_app_distribution_remove_testers также принимают следующие аргументы:

  • project_name : номер вашего проекта Firebase.
  • service_credentials_file : путь к вашему файлу учетных данных службы Google.
  • firebase_cli_token : токен авторизации для Firebase CLI.

service_credentials_file и firebase_cli_token — это те же аргументы, которые используются действием загрузки.

Шаг 5 (необязательно). Получите информацию о последней версии вашего приложения

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

Возвращаемое значение действия — это хеш, представляющий последний выпуск. Этот хэш также доступен с помощью lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] . Дополнительные сведения о доступных полях в этом хеше см. в документации по REST API .

Параметры

параметры firebase_app_distribution_get_latest_release
app

Требуется только в том случае, если ваше приложение не содержит файл конфигурации Firebase ( GoogleService-Info.plist ) : идентификатор приложения Firebase вашего приложения. Идентификатор приложения можно найти в консоли Firebase, на странице «Общие настройки» .

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

Путь к вашему файлу GoogleService-Info.plist относительно пути к заархивированному продукту. По умолчанию установите GoogleService-Info.plist .

Файл используется для получения идентификатора приложения Firebase вашего приложения, если параметр app не указан.

firebase_cli_token

Токен обновления, который печатается при аутентификации среды CI с помощью интерфейса командной строки Firebase (дополнительную информацию см. в разделе Использование интерфейса командной строки с системами CI ).

service_credentials_file

Путь к json-файлу вашего сервисного аккаунта Google. См. выше, как пройти аутентификацию с использованием учетных данных служебной учетной записи .

debug

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

Следующие шаги