Firebase App Distribution — to usługa Google do dystrybucji wstępnych kompilacji aplikacji mobilnych wśród testerów i zespołów wewnętrznych bez konieczności publikowania ich w sklepach z aplikacjami. App Distribution zapewnia jednolity interfejs do przesyłania APK i IPA, zarządzania grupami testerów i zbierania opinii. Według Firebase Documentation, 2026, usługa automatycznie powiadamia testerów o nowych wersjach przez e-mail i powiadomienia push, a integracja Fastlane umożliwia publikowanie kompilacji bezpośrednio z potoku CI/CD bez ręcznych działań. App Distribution obsługuje zarówno Android (AAB/APK), jak i iOS (IPA), w tym dystrybucję ad-hoc i enterprise.
Najważniejsze
Firebase App Distribution — to usługa Google do dystrybucji przedpremierowych wersji aplikacji mobilnych wśród testerów i zainteresowanych stron. W przeciwieństwie do publikacji w sklepach z aplikacjami, App Distribution umożliwia dostarczanie kompilacji wybranym uczestnikom natychmiast, bez długotrwałego procesu recenzji. Usługa jest zintegrowana z Firebase Crashlytics, co pozwala programistom otrzymywać raporty o awariach bezpośrednio od testerów i naprawiać problemy przed publicznym wydaniem.
Tradycyjny proces dystrybucji wersji beta obejmuje ręczne rozsyłanie APK/IPA e-mailem, przesyłanie na zewnętrzne serwery plików lub konfigurację własnego serwera. Firebase App Distribution rozwiązuje te problemy: centralne repozytorium kompilacji w Google Cloud, automatyczne powiadomienia testerów, scentralizowane zarządzanie dostępem i wbudowana informacja zwrotna przez Firebase Crashlytics. Usługa jest niezbędna dla zespołów praktykujących CI/CD i regularne wydania: nowa kompilacja jest dostępna dla testerów w minutę po przesłaniu.
App Distribution obsługuje wszystkie standardowe formaty kompilacji dla platform mobilnych. Dla Androida — APK i Android App Bundle (AAB) z automatycznym generowaniem APK z AAB podczas instalacji. Dla iOS — pliki IPA do dystrybucji ad-hoc, development i enterprise. Każdej kompilacji towarzyszą notatki wydania (release notes), numer wersji i kod kompilacji do śledzenia. Maksymalny rozmiar przesyłanego pliku to 500 MB, okres przechowywania kompilacji — 150 dni.
Przesyłanie kompilacji do Firebase App Distribution odbywa się przez Firebase Console, CLI (firebase appdistribution:distribute) lub zautomatyzowane narzędzia takie jak Fastlane i Gradle. Podczas przesyłania podaje się wersję kompilacji, notatki wydania oraz listę testerów lub grup, które powinny otrzymać powiadomienie. Firebase automatycznie przypisuje kompilacji unikalny identyfikator i udostępnia ją do instalacji pod linkiem.
Firebase Console udostępnia interfejs webowy do przesyłania kompilacji i zarządzania wersjami. W konsoli wyświetlana jest historia wszystkich przesłanych kompilacji z datą, wersją, statusem i liczbą instalacji. Programista może wyłączyć konkretną wersję, jeśli wykryto w niej krytyczny błąd — zablokuje to możliwość instalacji wersji dla wszystkich testerów. Konsola pokazuje również wykres instalacji według dni, co pomaga śledzić aktywność testowania.
Firebase CLI umożliwia przesyłanie kompilacji jednym poleceniem, co jest wygodne do integracji z potokami CI/CD. Polecenie distribute przyjmuje ścieżkę do pliku, token dostępu projektu, listę grup testerów i opcjonalne notatki wydania. Do uwierzytelniania używane jest konto usługowe Firebase z rolą Firebase App Distribution Admin. CLI obsługuje zarówno kompilacje Androida, jak i iOS, automatycznie określając platformę na podstawie rozszerzenia pliku.
# Przesyłanie kompilacji przez Firebase CLI
firebase appdistribution:distribute \
app-release.apk \
--app 1:123456789:android:abc123def456 \
--groups "qa-team,product-owners" \
--release-notes "Naprawiono błąd autoryzacji" \
--token "FIREBASE_TOKEN"
Firebase App Distribution zapewnia elastyczny system zarządzania testerami: można dodawać uczestników e-mailem, tworzyć grupy według ról lub projektów oraz przypisywać różne kompilacje do różnych grup. Po dodaniu nowego testera system wysyła mu e-mail z zaproszeniem i instrukcją instalacji aplikacji. Testerzy otrzymują automatyczne powiadomienia o każdej nowej kompilacji przypisanej do ich grupy.
Grupy pozwalają zorganizować testerów według zasady funkcjonalnej. Przykłady grup: Zespół QA (pełny dostęp do wszystkich kompilacji), Product Owners (dostęp do stabilnych kompilacji), External Testers (ograniczony dostęp dla zewnętrznych beta-testerów). Jeden tester może należeć do wielu grup. Podczas przesyłania kompilacji programista wybiera grupy docelowe — powiadomienia otrzymają tylko członkowie wybranych grup, co eliminuje szum informacyjny.
Do programowego dodawania testerów używane jest Firebase App Distribution API. API umożliwia tworzenie testerów, dodawanie ich do grup oraz usuwanie w razie potrzeby. Jest to wygodne przy integracji z wewnętrznymi systemami zarządzania testowaniem i bug trackerami. Po dodaniu testera przez API otrzymuje on również e-mail z zaproszeniem i linkiem do instalacji pierwszej aplikacji.
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("Tester dodany do grupy")
} catch (error) {
console.error("Błąd:", error)
}
}
addTestersToGroup("tester@example.com", "qa-team")
Dystrybucja kompilacji Androida przez Firebase App Distribution obsługuje dwa formaty: APK i Android App Bundle (AAB). Podczas przesyłania AAB Firebase automatycznie generuje APK zgodny z urządzeniem testera, używając Google Play App Signing. Testerzy instalują aplikację przez bezpośredni link — nie potrzebują dostępu do Google Play Console ani nie muszą być dodani jako testerzy w Play Console. To znacznie upraszcza proces beta-testowania dla Androida.
Do instalacji przez App Distribution testerzy muszą włączyć instalację z nieznanych źródeł na urządzeniu. Firebase automatycznie generuje link prowadzący do strony internetowej z przyciskiem instalacji APK. Dla formatu AAB wymagane jest, aby urządzenie obsługiwało Play Core Library i miało zainstalowany Google Play Store. Firebase zaleca używanie AAB dla wersji końcowych i APK dla szybkich iteracji.
Wtyczka Firebase App Distribution dla Gradle umożliwia wysyłanie kompilacji bezpośrednio z zadania Gradle. Konfiguracja obejmuje dodanie wtyczki com.google.firebase.appdistribution, konfigurację konta usługowego i ustawienie grup docelowych. Po konfiguracji zadanie assembleDistRelease będzie budować aplikację i przesyłać ją do Firebase App Distribution jednym poleceniem.
// 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 "Automatyczna kompilacja"
}
Dystrybucja kompilacji iOS przez Firebase App Distribution wymaga dodatkowej konfiguracji, ponieważ Apple ogranicza instalację aplikacji poza App Store. Do dystrybucji aplikacji iOS konieczne jest użycie certyfikatów ad-hoc lub enterprise z programu Apple Developer Program. Testerzy muszą być dodani w Apple Developer Portal jako urządzenia do dystrybucji ad-hoc lub korzystać z dystrybucji enterprise bez ograniczeń co do urządzeń.
Do dystrybucji ad-hoc należy zebrać UDID wszystkich urządzeń testerów i dodać je do Apple Developer Portal. Firebase App Distribution pokazuje testerom instrukcję znajdowania UDID i automatycznie zapisuje zarejestrowane urządzenia. Po dodaniu UDID do profilu inicjującego (provisioning profile) i zbudowaniu IPA testerzy otrzymują link do instalacji. Firebase zaleca używanie certyfikatu enterprise dla projektów z dużą liczbą testerów, ponieważ ad-hoc jest ograniczony do 100 urządzeń na konto.
Fastlane — zalecane narzędzie do automatyzacji budowania aplikacji iOS. Lane match zarządza certyfikatami i profilami inicjującymi, a lane sigh tworzy IPA do dystrybucji. Firebase App Distribution integruje się z Fastlane przez wtyczkę firebase_app_distribution, która przesyła IPA i powiadamia testerów. Fastlane obsługuje również zarządzanie wersjami i notatkami wydania przez dodatkowe wtyczki.
# 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: "Build z #\{Time.now.strftime
('%Y-%m-%d %H:%M')}"
)
end
Pełna integracja Firebase App Distribution z CI/CD umożliwia automatyczne publikowanie nowych kompilacji przy każdym commicie w repozytorium. Konfigurując potok CI, zespół otrzymuje natychmiastową informację zwrotną od testerów w ciągu kilku minut po wypchnięciu kodu. App Distribution obsługuje wszystkie popularne systemy CI: GitHub Actions, GitLab CI, Jenkins, Bitrise i CircleCI. Dla każdej platformy wymagana jest własna konfiguracja, ale ogólna zasada jest taka sama: kompilacja → przesłanie → powiadomienie.
GitHub Actions umożliwia skonfigurowanie automatycznej dystrybucji kompilacji przy wypchnięciu do gałęzi develop lub utworzeniu pull requesta. Workflow obejmuje instalację Java/Flutter/Node.js, budowanie aplikacji, uwierzytelnienie przez konto usługowe Firebase i uruchomienie Firebase CLI z poleceniem distribute. Sekrety (tokeny, konta usługowe) przechowywane są w GitHub Secrets i nie są ujawniane w logach kompilacji. Dla iOS dodatkowo wymagana jest konfiguracja Xcode i instalacja Fastlane w 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 integruje się z Firebase Crashlytics do automatycznego zbierania raportów o awariach od testerów. Crashlytics automatycznie przypisuje awarię do konkretnej wersji kompilacji i urządzenia, co pomaga szybko zlokalizować i naprawić problem. Testerzy mogą również przesyłać zrzuty ekranu i komentarze przez interfejs webowy App Distribution, otrzymując link do formularza opinii po instalacji kompilacji.
Często zadawane pytania
Firebase App Distribution — to usługa wieloplatformowa (Android + iOS), w przeciwieństwie do TestFlight, który działa tylko dla iOS. App Distribution integruje się również z Crashlytics i Firebase Analytics, zapewniając jednolity ekosystem do beta-testowania na obu platformach.
Kompilacje są przechowywane przez 150 dni od momentu przesłania. Po tym okresie są automatycznie usuwane. Zaleca się regularne przesyłanie nowych kompilacji i ręczne usuwanie nieaktualnych przez Firebase Console, aby testerzy nie instalowali przestarzałych wersji.
Nie ma ograniczenia liczby testerów w Firebase App Distribution. Dla dystrybucji ad-hoc iOS obowiązuje limit Apple wynoszący 100 urządzeń na konto. Dla Androida i dystrybucji enterprise iOS nie ma ograniczeń co do liczby testerów.
Tak, App Distribution obsługuje AAB (Android App Bundle). Firebase automatycznie generuje APK z AAB dla każdego urządzenia testera za pomocą Google Play App Signing. Jest to szczególnie wygodne do testowania przed publikacją w Play Store.
Tak, App Distribution wchodzi w skład bezpłatnego planu Spark Firebase. Ograniczenia Spark: do 500 testerów i 25 000 instalacji miesięcznie na projekt. Plan Blaze znosi te ograniczenia i dodaje priorytetowe wsparcie.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również