В этом документе представлены рекомендации по использованию Firebase App Distribution, которые помогут вам сделать рабочие процессы тестирования предварительных выпусков Android устойчивыми и повторяемыми в среде CI/CD. Среди них Gradle и fastlane, а также решения, доступные через консоль Firebase, CLI Firebase и общедоступный API Firebase App Distribution. Мы также расскажем об ограничениях на выпуски и тестировщиков, чтобы вы могли заранее спланировать работу.
Если вы также используете платформы Apple, ознакомьтесь с рекомендациями по распространению приложений Apple среди тестировщиков с помощью CI/CD и fastlane.
Подготовка
Прежде чем следовать рекомендациям из этого документа, включите App Distribution в консоли Firebase для каждого приложения. Если вы этого не сделаетеApp Distribution, то получите ошибку 404.
Чтобы включить App Distribution, выполните следующие действия:
- Откройте страницу App Distribution в консоли Firebase.
- Выберите приложение для Android.
- Нажмите Начать.
Поскольку наборы Android App Bundle (AAB) становятся самым распространенным форматом пакетов Android, мы рекомендуем настроить возможность распространения AAB среди тестировщиков, установив связь с Google Play.
Автоматизируйте рабочий процесс тестирования предварительных выпусков с помощью конвейера CI/CD
Если вы хотите автоматизировать сборку и выпуск приложений для тестировщиков и используете CI/CD, рекомендуем использовать fastlane или Gradle. Другой вариант – использовать интерфейс командной строки Firebase, который позволяет получить доступ к широкому спектру продуктов Firebase.
Использование fastlane
Интегрируйте App Distribution в конвейер непрерывной интеграции и доставки с помощью fastlane – инструмента с открытым исходным кодом, который автоматизирует сборку и выпуск приложений для iOS и Android. Автоматическая сборка и распространение последних выпусков среди тестировщиков гарантирует, что у них всегда будет самая актуальная тестовая версия вашего приложения.
Чтобы узнать, как интегрировать App Distribution с fastlane, прочитайте статью Как распространять приложения Android среди тестировщиков с помощью fastlane.
Использовать Gradle
Используйте Gradle, чтобы интегрировать App Distribution в процесс сборки Android с помощью плагина App Distribution Gradle. Плагин позволяет указать тестировщиков и примечания к выпуску в файле build.gradle приложения, чтобы настроить распространение для разных типов сборок и вариантов приложения.
Чтобы узнать, как интегрировать App Distribution с Gradle, прочитайте статью Как распространять приложения Android среди тестировщиков с помощью Gradle.
Используйте интерфейс командной строки Firebase
Используйте инструменты командной строки Firebase, которые предоставляет App Distribution, чтобы распространять сборки среди тестировщиков программным способом. Вы можете указать тестировщиков и примечания к выпуску для сборки.
Чтобы распространить последнюю сборку Android, укажите идентификатор приложения Firebase. При необходимости добавьте примечание к выпуску и файл с адресами электронной почты тестировщиков.
firebase appdistribution:distribute test.aab \
--app 1:1234567890:android:0a1b2c3d4e5f67890 \
--release-notes "Bug fixes and improvements" --testers-file testers.txt
Подробнее о том, как использовать CLI Firebase для автоматизации сборок …Firebase
Используйте учетные данные сервиса для аутентификации
Используйте App Distribution плагин fastlane, плагин Gradle или CLI Firebase с сервисными аккаунтами. Сервисный аккаунт – это тип аккаунта Google, который представляет приложения (в отличие от пользователей). Ваша система непрерывной интеграции может использовать сервисные аккаунты для выполнения рабочих нагрузок App Distribution. Подробнее об аутентификации с помощью сервисного аккаунта…
Если вы используете федерацию Workload Identity, то можете создать и использовать файл конфигурации учетных данных вместо ключа сервисного аккаунта.
Ограничения на количество релизов
App Distribution поддерживает не более 1000 выпусков на приложение. Если вы превысите это ограничение, App Distribution автоматически удалит самые старые выпуски. Подробнее о том, как управлять ограничениями на выпуск…
Как добавить одну группу тестировщиков в несколько выпусков
Если вы хотите добавить в выпуски большое количество тестировщиков, используйте функцию массового управления тестировщиками в App Distribution.
Рекомендуем использовать группы, чтобы добавлять одних и тех же тестировщиков в разные выпуски. Группа действует как список управления доступом. Если вы удалите тестировщика из группы, он потеряет доступ ко всем выпускам, распространяемым в ней. Подробнее о том, как добавлять тестировщиков в группу и удалять их из нее…
Если у вас много тестировщиков, вы можете добавлять и удалять их массово в консоли Firebase. Чтобы автоматизировать добавление и удаление тестировщиков, используйте CLI Firebase, fastlane, Gradle или общедоступный API Firebase App Distribution.
Учитывайте ограничения на количество тестировщиков
App Distribution ограничивает количество тестировщиков, которых можно добавить в проект Firebase или группу App Distribution. Если вы превысите эти ограничения, то не сможете распространять приложение среди дополнительных тестировщиков. Подробнее об ограничениях на количество тестировщиков…
Разрешите потенциальным тестировщикам самостоятельно регистрироваться для участия в тестировании
Чтобы упростить распространение приложения среди тестировщиков, рекомендуем использовать ссылки для приглашения. Ссылка для приглашения – это уникальный URL, по которому тестировщики могут указать свои адреса электронной почты и зарегистрироваться для тестирования приложения. Это удобный способ расширить базу тестировщиков.
Ссылки для приглашения могут использоваться в программах внутреннего тестирования, организациях с большими командами контроля качества и группах разработчиков, которые хотят, чтобы отдельные клиенты могли управлять доступом тестировщиков.
Рекомендуем создать ссылку для приглашения в группу. Все тестировщики, которые зарегистрируются по ссылке для приглашения, будут автоматически добавлены в последующие выпуски.
Подробнее о том, как создавать ссылки для приглашения и как добавлять тестировщиков в группу и удалять их из нее…
Убедитесь, что тестировщики проверяют нужную версию
Когда вы загрузите новую версию, тестировщики получат уведомление по электронной почте. Чтобы тестировщики точно знали, какую версию приложения нужно проверить, вы можете использовать ссылки на выпуск и оповещения в приложении.
- Ссылки на выпуски. Используйте эту функцию, чтобы поделиться с тестировщиками определенной версией приложения. Подробнее о том, как распространять приложения Android среди тестировщиков с помощью консоли Firebase… Эти ссылки также доступны в наших инструментах командной строки Firebase, fastlane и Gradle (CLI), которые можно использовать с инструментами автоматизации сборки.
- Оповещения в приложении. Используйте их, чтобы тестировщики всегда работали с последней версией приложения. Интегрировав Firebase App Distribution Android SDK, вы сможете показывать тестировщикам оповещения о новых сборках прямо в приложении. Подробнее о том, как настроить оповещения в приложении…
Автоматически закрывать доступ тестировщикам, которые увольняются из компании.
Когда процесс внутреннего тестирования CI/CD будет запущен, убедитесь, что у сотрудников, которые увольняются из компании, больше нет доступа к внутренним сборкам. В App Distribution есть следующие варианты управления доступом тестировщиков к сборкам:
- fastlane. Используйте файл Fastfile или напрямую запускайте действия fastlane. Подробнее о том, как распространять приложения Android среди тестировщиков с помощью fastlane…
- Интерфейс командной строки Firebase. Используйте действие
firebase appdistribution:testers:remove. Подробнее о том, как распространять приложения Android среди тестировщиков с помощью FirebaseCLI… - Gradle. Если вы используете Gradle, передайте
appDistributionRemoveTestersс аргументамии--PROJECT_NUMBER в файле--EMAILS build.gradle. Подробнее о том, как распространять приложения Android среди тестировщиков с помощью Gradle… - **Общедоступный
Firebase App Distribution API:** используйте конечную точку
testers.batchRemove.