Firebase App Distribution — это сервис Google для распространения предварительных сборок мобильных приложений среди тестировщиков и внутренних команд без необходимости публиковать их в магазинах приложений. App Distribution предоставляет единый интерфейс для загрузки APK и IPA, управления группами тестировщиков и сбора обратной связи. По данным Firebase Documentation, 2026, сервис автоматически уведомляет тестировщиков о новых версиях через email и push-уведомления, а Fastlane-интеграция позволяет публиковать сборки прямо из CI/CD пайплайна без ручных действий. App Distribution поддерживает как Android (AAB/APK), так и iOS (IPA), включая ad-hoc и enterprise-распространение.
Главное
Firebase App Distribution — это сервис Google для распространения предрелизных версий мобильных приложений среди тестировщиков и заинтересованных сторон. В отличие от публикации в магазинах приложений, App Distribution позволяет доставлять сборки выбранным участникам мгновенно, без длительного процесса ревью. Сервис интегрирован с Firebase Crashlytics, что позволяет разработчикам получать отчёты о крашах непосредственно от тестировщиков и исправлять проблемы до публичного релиза.
Традиционный процесс распространения бета-версий включает ручную рассылку APK/IPA по email, загрузку на сторонние файлообменники или настройку собственного сервера. Firebase App Distribution решает эти проблемы: единое хранилище сборок на Google Cloud, автоматические уведомления тестировщиков, централизованное управление доступом и встроенная обратная связь через Firebase Crashlytics. Сервис незаменим для команд, практикующих CI/CD и регулярные релизы: новая сборка доступна тестировщикам через минуту после загрузки.
App Distribution поддерживает все стандартные форматы сборок для мобильных платформ. Для Android — APK и Android App Bundle (AAB) с автоматической генерацией APK из AAB при установке. Для iOS — IPA-файлы для ad-hoc, development и enterprise-распространения. Каждая сборка сопровождается релиз-нотами (release notes), номером версии и кодом сборки для отслеживания. Максимальный размер загружаемого файла — 500 MB, срок хранения сборок — 150 дней.
Загрузка сборок в Firebase App Distribution выполняется через Firebase Console, CLI (firebase appdistribution:distribute) или автоматизированные инструменты вроде Fastlane и Gradle. При загрузке указывается версия сборки, релиз-ноты и список тестировщиков или групп, которые должны получить уведомление. Firebase автоматически присваивает сборке уникальный идентификатор и делает её доступной для установки по ссылке.
Firebase Console предоставляет веб-интерфейс для загрузки сборок и управления версиями. В консоли отображается история всех загруженных сборок с датой, версией, статусом и количеством установок. Разработчик может отключить конкретную версию, если в ней обнаружена критическая ошибка — это заблокирует возможность установки версии для всех тестировщиков. Консоль также показывает график установок по дням, что помогает отслеживать активность тестирования.
Firebase CLI позволяет загружать сборки одной командой, что удобно для интеграции в CI/CD пайплайны. Команда distribute принимает путь к файлу, токен доступа проекта, список групп тестировщиков и опциональные релиз-ноты. Для аутентификации используется сервисный аккаунт Firebase с ролью Firebase App Distribution Admin. CLI поддерживает как Android, так и iOS сборки, автоматически определяя платформу по расширению файла.
# Загрузка сборки через Firebase CLI
firebase appdistribution:distribute \
app-release.apk \
--app 1:123456789:android:abc123def456 \
--groups "qa-team,product-owners" \
--release-notes "Исправлен баг с авторизацией" \
--token "FIREBASE_TOKEN"
Firebase App Distribution предоставляет гибкую систему управления тестировщиками: можно добавлять участников по email, создавать группы по ролям или проектам и назначать разные сборки разным группам. При добавлении нового тестировщика система отправляет ему пригласительное письмо с инструкцией по установке приложения. Тестировщики получают автоматические уведомления о каждой новой сборке, назначенной на их группу.
Группы позволяют организовать тестировщиков по функциональному принципу. Примеры групп: QA-команда (полный доступ ко всем сборкам), Product Owners (доступ к стабильным билдам), External Testers (ограниченный доступ для внешних бета-тестеров). Один тестировщик может входить в несколько групп. При загрузке сборки разработчик выбирает целевые группы — уведомления получат только участники выбранных групп, что исключает информационный шум.
Для добавления тестировщиков программно используется Firebase App Distribution API. API позволяет создавать тестировщиков, добавлять их в группы, а также удалять при необходимости. Это удобно при интеграции с внутренними системами управления тестированием и баг-трекерами. При добавлении тестировщика через API он также получает пригласительное письмо с ссылкой на установку первого приложения.
const admin = require("firebase-admin")
const serviceAccount = require("./serviceAccountKey.json")
admin.initializeApp({ credential: admin.credential.cert(serviceAccount) })
async function addTestersToGroup(email, groupAlias) {
try {
await admin.appDistribution().addTesters(email, [groupAlias])
console.log("Тестировщик добавлен в группу")
} catch (error) {
console.error("Ошибка:", error)
}
}
addTestersToGroup("tester@example.com", "qa-team")
Распространение Android-сборок через Firebase App Distribution поддерживает два формата: APK и Android App Bundle (AAB). При загрузке AAB Firebase автоматически генерирует APK, совместимый с устройством тестировщика, используя Google Play App Signing. Тестировщики устанавливают приложение по прямой ссылке — им не нужен доступ к Google Play Console, они не должны быть добавлены как тестировщики в Play Console. Это существенно упрощает процесс бета-тестирования для Android.
Для установки через App Distribution тестировщики должны включить установку из неизвестных источников на устройстве. Firebase автоматически генерирует ссылку, ведущую на веб-страницу с кнопкой установки APK. Для AAB-формата требуется, чтобы устройство поддерживало Play Core Library и имело установленный Google Play Store. Firebase рекомендует использовать AAB для финальных версий и APK для быстрых итераций.
Плагин Firebase App Distribution для Gradle позволяет отправлять сборки прямо из задачи Gradle. Настройка включает добавление плагина com.google.firebase.appdistribution, настройку сервисного аккаунта и конфигурацию групп назначения. После настройки задача assembleDistRelease будет собирать приложение и загружать его в Firebase App Distribution одной командой.
// build.gradle (module: app)
plugins {
id 'com.android.application'
id 'com.google.firebase.appdistribution'
}
android { // standard config }
firebaseAppDistribution {
appId "1:123456789:android:abc123def456"
serviceCredentialsFile "firebase-sa.json"
groups "qa-team"
releaseNotes "Автоматическая сборка"
}
Распространение iOS-сборок через Firebase App Distribution требует дополнительной настройки, так как Apple ограничивает установку приложений вне App Store. Для распространения iOS-приложений необходимо использовать ad-hoc или enterprise-сертификаты Apple Developer Program. Тестировщики должны быть добавлены в Apple Developer Portal как устройства для ad-hoc распространения, либо использовать enterprise-распространение без ограничения по устройствам.
Для ad-hoc распространения необходимо собрать UDID всех устройств тестировщиков и добавить их в Apple Developer Portal. Firebase App Distribution показывает тестировщикам инструкцию по поиску UDID и автоматически сохраняет зарегистрированные устройства. После добавления UDID в provisioning profile и сборки IPA тестировщики получают ссылку на установку. Firebase рекомендует использовать enterprise-сертификат для проектов с большим количеством тестировщиков, так как ad-hoc ограничен 100 устройствами на аккаунт.
Fastlane — рекомендуемый инструмент для автоматизации сборки iOS-приложений. Lane match управляет сертификатами и provisioning profiles, а lane sigh создаёт IPA для распространения. Firebase App Distribution интегрируется с Fastlane через плагин firebase_app_distribution, который загружает IPA и уведомляет тестировщиков. Fastlane также поддерживает управление версиями и релиз-нотами через дополнительные плагины.
# Fastfile
lane :beta do
match(type: :adhoc)
gym(scheme: "MyApp", export_method: "ad-hoc")
firebase_app_distribution(
app: "1:123456789:ios:abc123def456",
groups: "qa-team",
release_notes: "Билд от #\{Time.now.strftime
('%Y-%m-%d %H:%M')}"
)
end
Полная интеграция Firebase App Distribution с CI/CD позволяет автоматически публиковать новые сборки при каждом коммите в репозиторий. Настроив CI-пайплайн, команда получает мгновенную обратную связь от тестировщиков через несколько минут после пуша кода. App Distribution поддерживает все популярные CI-системы: GitHub Actions, GitLab CI, Jenkins, Bitrise и CircleCI. Для каждой платформы требуется своя конфигурация, но общий принцип одинаков: сборка → загрузка → уведомление.
GitHub Actions позволяет настроить автоматическое распространение сборок при пуше в ветку develop или создании pull request. Workflow включает установку Java/Flutter/Node.js, сборку приложения, аутентификацию через Firebase Service Account и запуск Firebase CLI с командой distribute. Секреты (токены, сервисные аккаунты) хранятся в GitHub Secrets и не раскрываются в логах сборки. Для iOS дополнительно требуется настройка Xcode и установка Fastlane в workflow.
# .github/workflows/distribute.yml
name: Distribute to Firebase
on:
push: { branches: [ develop ] }
jobs:
build-and-distribute:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with: { distribution: "temurin", java-version: "17" }
- name: Build APK
run: ./gradlew assembleDebug
- name: Upload to Firebase
uses: wzieba/Firebase-Distribution-GitHub-Action@v1
with:
appId: "${{ secrets.FIREBASE_APP_ID }}"
serviceCredentialsFileContent: "${{ secrets.FIREBASE_SA_KEY }}"
groups: qa-team
file: app/build/outputs/apk/debug/app-debug.apk
Firebase App Distribution интегрируется с Firebase Crashlytics для автоматического сбора отчётов о крашах от тестировщиков. Crashlytics автоматически привязывает краш к конкретной версии сборки и устройству, что помогает быстро локализовать и исправить проблему. Тестировщики также могут отправлять скриншоты и комментарии через веб-интерфейс App Distribution, получая ссылку на форму обратной связи после установки сборки.
Часто задаваемые вопросы
Firebase App Distribution — кроссплатформенный сервис (Android + iOS), в отличие от TestFlight, который работает только для iOS. App Distribution также интегрируется с Crashlytics и Firebase Analytics, предоставляя единую экосистему для бета-тестирования на обеих платформах.
Сборки хранятся 150 дней с момента загрузки. После этого срока они автоматически удаляются. Рекомендуется регулярно загружать новые сборки и удалять устаревшие вручную через Firebase Console, чтобы тестировщики не устанавливали устаревшие версии.
Ограничения нет на количество тестировщиков в Firebase App Distribution. Для iOS ad-hoc распространения действует лимит Apple в 100 устройств на аккаунт. Для Android и iOS enterprise-распространения ограничений по количеству тестировщиков нет.
Да, App Distribution поддерживает AAB (Android App Bundle). Firebase автоматически генерирует APK из AAB для каждого устройства тестировщика с помощью Google Play App Signing. Это особенно удобно для тестирования перед публикацией в Play Store.
Да, App Distribution входит в бесплатный Spark-план Firebase. Ограничения Spark: до 500 тестировщиков и 25 000 установок в месяц на проект. Blaze-план снимает эти ограничения и добавляет приоритетную поддержку.
Итоги
Мы разработаем мобильное приложение под ключ
IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.
Читайте также