Firebase App Distribution: Key Concepts, APK and IPA Distribution, and Setup

Author: IT Sectr Published: 2026-04-29 Reading time: 8 min

Firebase App Distribution is a Google service for distributing pre-release builds of mobile applications to testers and internal teams without publishing them in app stores. App Distribution provides a unified interface for uploading APK and IPA files, managing tester groups, and collecting feedback. According to Firebase Documentation, 2026, the service automatically notifies testers about new versions via email and push notifications, and Fastlane integration allows publishing builds directly from a CI/CD pipeline without manual actions. App Distribution supports both Android (AAB/APK) and iOS (IPA), including ad-hoc and enterprise distribution.

Key Takeaways

  • App Distribution — a Firebase service for distributing beta versions of apps to testers without publishing on Google Play or the App Store.
  • Tester Groups — a flexible access management system: create groups by roles, projects, or testing stages with different build permissions.
  • Auto Notifications — testers receive email and push notifications for each new build with an installation link.
  • Fastlane + Gradle — full integration with CI/CD systems for automatic build publishing on every commit or pull request.
  • Feedback — testers can send screenshots, logs, and comments through the built-in interface or Firebase Crashlytics.

What is Firebase App Distribution

Firebase App Distribution is a Google service for distributing pre-release versions of mobile applications to testers and stakeholders. Unlike publishing in app stores, App Distribution allows you to deliver builds to selected participants instantly, without a lengthy review process. The service is integrated with Firebase Crashlytics, enabling developers to receive crash reports directly from testers and fix issues before the public release.

Why Use App Distribution

The traditional beta distribution process involves manually sending APK/IPA files via email, uploading to third-party file sharing services, or setting up your own server. Firebase App Distribution solves these problems: a unified build repository on Google Cloud, automatic tester notifications, centralized access management, and built-in feedback via Firebase Crashlytics. The service is indispensable for teams practicing CI/CD and regular releases: a new build is available to testers within a minute after upload.

Supported Build Formats

App Distribution supports all standard build formats for mobile platforms. For Android — APK and Android App Bundle (AAB) with automatic APK generation from AAB during installation. For iOS — IPA files for ad-hoc, development, and enterprise distribution. Each build is accompanied by release notes, a version number, and a build code for tracking. The maximum upload file size is 500 MB, and builds are stored for 150 days.

Uploading Builds and Version Management

Uploading builds to Firebase App Distribution is done via the Firebase Console, CLI (firebase appdistribution:distribute), or automated tools like Fastlane and Gradle. When uploading, you specify the build version, release notes, and the list of testers or groups that should receive a notification. Firebase automatically assigns a unique identifier to the build and makes it available for installation via a link.

Version Management via Firebase Console

The Firebase Console provides a web interface for uploading builds and managing versions. The console displays the history of all uploaded builds with date, version, status, and installation count. A developer can disable a specific version if a critical bug is found — this will block installation of that version for all testers. The console also shows an installation graph by day, helping track testing activity.

Automatic Upload via Firebase CLI

The Firebase CLI allows uploading builds with a single command, which is convenient for CI/CD pipeline integration. The distribute command accepts a file path, a project access token, a list of tester groups, and optional release notes. Authentication uses a Firebase service account with the Firebase App Distribution Admin role. The CLI supports both Android and iOS builds, automatically detecting the platform by the file extension.

bash
# Uploading a build via Firebase CLI
firebase appdistribution:distribute \
    app-release.apk \
    --app 1:123456789:android:abc123def456 \
    --groups "qa-team,product-owners" \
    --release-notes "Fixed authorization bug" \
    --token "FIREBASE_TOKEN"

Managing Testers and Groups

Firebase App Distribution provides a flexible tester management system: you can add participants by email, create groups by roles or projects, and assign different builds to different groups. When a new tester is added, the system sends them an invitation email with instructions for installing the application. Testers receive automatic notifications about each new build assigned to their group.

Creating Tester Groups

Groups allow you to organize testers functionally. Group examples: QA Team (full access to all builds), Product Owners (access to stable builds), External Testers (limited access for external beta testers). A single tester can belong to multiple groups. When uploading a build, the developer selects target groups — only members of the selected groups receive notifications, eliminating information noise.

Adding Testers via API

To add testers programmatically, the Firebase App Distribution API is used. The API allows you to create testers, add them to groups, and delete them when necessary. This is convenient for integration with internal test management systems and bug trackers. When a tester is added via the API, they also receive an invitation email with a link to install the first application.

js
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 added to group")
    } catch (error) {
        console.error("Error:", error)
    }
}

addTestersToGroup("tester@example.com", "qa-team")

Android Build Distribution

Android build distribution through Firebase App Distribution supports two formats: APK and Android App Bundle (AAB). When uploading an AAB, Firebase automatically generates an APK compatible with the tester’s device using Google Play App Signing. Testers install the application via a direct link — they do not need access to the Google Play Console, nor do they need to be added as testers in the Play Console. This significantly simplifies the beta testing process for Android.

Android Build Requirements

To install via App Distribution, testers must enable installation from unknown sources on their device. Firebase automatically generates a link leading to a web page with an APK install button. For the AAB format, the device must support the Play Core Library and have Google Play Store installed. Firebase recommends using AAB for final versions and APK for quick iterations.

Gradle Configuration for App Distribution

The Firebase App Distribution Gradle plugin allows sending builds directly from a Gradle task. Configuration includes adding the com.google.firebase.appdistribution plugin, setting up a service account, and configuring target groups. After setup, the assembleDistRelease task will build the application and upload it to Firebase App Distribution with a single command.

groovy
// 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 "Automatic build"
}

iOS Build Distribution

iOS build distribution through Firebase App Distribution requires additional setup because Apple restricts app installation outside the App Store. To distribute iOS apps, you must use ad-hoc or enterprise certificates from the Apple Developer Program. Testers must be added to the Apple Developer Portal as devices for ad-hoc distribution, or use enterprise distribution without device limits.

Ad-Hoc Distribution Setup

For ad-hoc distribution, you need to collect the UDID of all tester devices and add them to the Apple Developer Portal. Firebase App Distribution shows testers instructions for finding their UDID and automatically saves registered devices. After adding the UDID to the provisioning profile and building the IPA, testers receive an installation link. Firebase recommends using an enterprise certificate for projects with a large number of testers, as ad-hoc is limited to 100 devices per account.

Building IPA via Fastlane

Fastlane is the recommended tool for automating iOS app builds. The match lane manages certificates and provisioning profiles, while the sigh lane creates an IPA for distribution. Firebase App Distribution integrates with Fastlane through the firebase_app_distribution plugin, which uploads the IPA and notifies testers. Fastlane also supports version management and release notes through additional plugins.

ruby
# 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 from #\{Time.now.strftime
            ('%Y-%m-%d %H:%M')}"
    )
end

CI/CD and Fastlane Integration

Full Firebase App Distribution integration with CI/CD allows automatically publishing new builds with every commit to the repository. By setting up a CI pipeline, the team gets instant feedback from testers just minutes after a code push. App Distribution supports all popular CI systems: GitHub Actions, GitLab CI, Jenkins, Bitrise, and CircleCI. Each platform requires its own configuration, but the general principle is the same: build → upload → notify.

Setup via GitHub Actions

GitHub Actions allows you to set up automatic build distribution on push to the develop branch or when creating a pull request. The workflow includes installing Java/Flutter/Node.js, building the application, authenticating through a Firebase Service Account, and running the Firebase CLI with the distribute command. Secrets (tokens, service accounts) are stored in GitHub Secrets and are not exposed in build logs. For iOS, Xcode setup and Fastlane installation in the workflow are additionally required.

yaml
# .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

Collecting Feedback

Firebase App Distribution integrates with Firebase Crashlytics for automatic crash report collection from testers. Crashlytics automatically links a crash to a specific build version and device, helping to quickly locate and fix the issue. Testers can also send screenshots and comments via the App Distribution web interface, receiving a feedback form link after installing the build.

Frequently Asked Questions

How is App Distribution different from TestFlight?

Firebase App Distribution is a cross-platform service (Android + iOS), unlike TestFlight which works only for iOS. App Distribution also integrates with Crashlytics and Firebase Analytics, providing a unified ecosystem for beta testing on both platforms.

How long are builds stored in App Distribution?

Builds are stored for 150 days from the upload date. After this period, they are automatically deleted. It is recommended to regularly upload new builds and manually delete outdated ones through the Firebase Console to prevent testers from installing old versions.

How many testers can be added?

There is no limit on the number of testers in Firebase App Distribution. For iOS ad-hoc distribution, Apple’s limit of 100 devices per account applies. For Android and iOS enterprise distribution, there are no restrictions on the number of testers.

Can I upload AAB instead of APK for Android?

Yes, App Distribution supports AAB (Android App Bundle). Firebase automatically generates an APK from the AAB for each tester’s device using Google Play App Signing. This is especially convenient for testing before publishing to the Play Store.

Is Firebase App Distribution free?

Yes, App Distribution is included in the free Firebase Spark plan. Spark plan limits: up to 500 testers and 25,000 installs per month per project. The Blaze plan removes these limits and adds priority support.

Summary

  • Firebase App Distribution is a service for distributing beta builds of mobile applications with support for Android (APK/AAB) and iOS (IPA) without publishing in stores.
  • Tester management — a flexible group system with automatic email and push notifications for each new build.
  • Build upload is done via the Firebase Console, CLI, Gradle plugin, or Fastlane with automatic tester notification.
  • Android builds support APK and AAB with automatic APK generation from AAB, installation via direct link without Google Play Console.
  • iOS builds require an ad-hoc or enterprise Apple certificate, with UDID registration and Fastlane support for IPA build automation.
  • CI/CD integration — GitHub Actions, GitLab CI, Jenkins, Bitrise with Firebase CLI or Fastlane for automatic publishing on every push.
  • Free up to 500 testers and 25,000 installs per month, builds stored for 150 days, integrated with Firebase Crashlytics for crash report collection.

We will develop a mobile application turnkey

IT Sectr creates iOS and Android applications for startups and businesses since 2017. We will advise you and propose the best solution.

Discuss the project

Read also