Firebase App Distribution — е услуга на Google за разпространение на предварителни сборки на мобилни приложения сред тестери и вътрешни екипи без необходимост да ги публикувате в магазините за приложения. App Distribution предоставя единен интерфейс за качване на APK и IPA, управление на групи от тестери и събиране на обратна връзка. Според Firebase Documentation, 2026, услугата автоматично уведомява тестерите за нови версии чрез имейл и 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 разпространение. Всяка сборка е придружена от бележки към изданието (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 предоставя гъвкава система за управление на тестери: участниците могат да се добавят чрез имейл, групи могат да се създават по роли или проекти и различни сборки могат да се присвояват на различни групи. При добавяне на нов тестер системата му изпраща покана по имейл с инструкции за инсталиране на приложението. Тестерите получават автоматични известия за всяка нова сборка, присвоена на тяхната група.
Групите позволяват организиране на тестери по функционален принцип. Примери за групи: 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 profile-и, а 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 позволява автоматично публикуване на нови сборки при всеки commit в хранилището. Чрез настройване на 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 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също