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 електронною поштою, завантаження на сторонні файлообмінники або налаштування власного сервера. 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-поширення. Кожна збірка супроводжується реліз-нотами, номером версії та кодом збірки для відстеження. Максимальний розмір файлу, що завантажується — 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 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також