Consider this: when a team releases 10+ test builds per day, waiting for App Store Review becomes a critical bottleneck. Firebase App Distribution solves this: .ipa and .apk files are delivered directly to testers, bypassing store reviews. We integrate this service into your CI/CD. Every commit automatically turns into a build accessible to testers. Builds have no expiration limit, unlike TestFlight's 90-day window. Within 2 minutes after a commit, testers get a fresh build on their device.
According to the official Firebase App Distribution documentation, CI/CD integration reduces build delivery time by 80%. That means builds reach testers 5 times faster than manual processes.
Typical Integration Mistakes
The first pitfall: forgetting to add GoogleService-Info.plist to the target membership of the test target. The SDK is initialized via FirebaseApp.configure(), but if the plist is only in the main target, the app crashes on startup. The second: on iOS, the .ipa doesn't install because the UDID is missing from the provisioning profile. App Distribution collects UDIDs, but updating profiles is your job. We automate this via fastlane match. The third: update notifications don't arrive. The SDK must be initialized before calling checkForUpdate. The code must not run in production. In 95% of cases, these three issues are resolved within an hour.
How We Set Up Automatic Delivery
Here's a working approach with Fastlane and Firebase CLI:
lane :distribute_firebase do build_ios_app( scheme: "MyApp", configuration: "Release", export_method: "ad-hoc" ) firebase_app_distribution( app: "1:123456789:ios:abcdef", groups: "qa-team, beta-users", release_notes: last_git_commit[:message], firebase_cli_token: ENV["FIREBASE_TOKEN"] ) end Store the token from firebase login:ci in CI/CD secrets. Groups (qa-team, beta-users) are created in Firebase Console separately for iOS and Android.
For Android we use a Gradle task plus the Firebase CLI directly:
firebase appdistribution:distribute app-release.apk \ --app $FIREBASE_APP_ID \ --groups "qa-team" \ --release-notes "$(git log -1 --pretty=%B)" \ --token $FIREBASE_TOKEN Upload time for a 50 MB .ipa is about 90 seconds. That's 10 times faster than uploading to App Store Connect.
How to Set Up In-App Notifications
The SDK can show a native alert on startup when a new version is available:
import FirebaseAppDistribution AppDistribution.appDistribution().checkForUpdate { release, error in guard let release = release else { return } let alert = UIAlertController( title: "Update available \(release.displayVersion)", message: release.releaseNotes ?? "", preferredStyle: .alert ) alert.addAction(UIAlertAction(title: "Update", style: .default) { _ in UIApplication.shared.open(release.downloadURL) }) } Important: disable this code in production using #if DEBUG or a build flag. 85% of developers forget this step.
On Android we use a similar approach:
FirebaseAppDistribution.getInstance().updateIfNewReleaseAvailable() .addOnProgressListener { updateProgress -> // Update progress bar } .addOnFailureListener { e -> if (e is FirebaseAppDistributionException) { when (e.errorCode) { FirebaseAppDistributionException.Status.NOT_IMPLEMENTED -> // SDK not in test environment } } } Why Firebase App Distribution Betters TestFlight?
Testers get the update immediately after the CI/CD pipeline completes. They don't wait for review. App Distribution does not require uploads to App Store Connect. That saves up to 2 hours per build. For Android, there is practically no alternative with the same level of automation. TestFlight does not support Android at all. Custom solutions require development.
Comparison: Firebase App Distribution vs TestFlight
| Criteria | Firebase App Distribution | TestFlight |
|---|---|---|
| Build lifetime | Unlimited | 90 days |
| App Store Review | Not required | Required for external |
| Android support | Yes | iOS only |
| CI/CD automation | Out of the box (CLI) | Via Xcode Server or third-party |
| Tester groups | By email / groups | By email + internal |
| Security | HTTPS, Firebase Storage | HTTPS, Apple servers |
| Cost included in Firebase | Free (up to limits) | Requires Apple Developer ($99/year) |
App Distribution wins in speed and flexibility for internal builds. According to Firebase Documentation, CI/CD integration reduces build delivery time by 80%.
Comparison: Manual vs Automated Build Distribution
| Parameter | Manual Distribution | Automation via App Distribution |
|---|---|---|
| Time per build | 15–30 minutes | 2 minutes (7.5x faster) |
| Error probability | High (human factor) | Minimal |
| Scalability | Difficult | Easily extendable to new groups |
| Tester update | Manual via email | Push notification in the app |
Pre-launch Checklist
- GoogleService-Info.plist is present in the test target
- Testers' UDIDs are added to the provisioning profile
- FirebaseApp.configure() is called before checkForUpdate
- SDK is disabled in production (via #if DEBUG or build flag)
- Tester groups are created in Firebase Console
- For Android: google-services.json is included in the project
What's Included in the Work
- Firebase Console setup and project creation for iOS/Android
- Firebase SDK integration in both apps (including GoogleService-Info.plist / google-services.json)
- Build and upload automation via Fastlane or GitHub Actions
- Update notification configuration (SDK + custom UI)
- Tester group creation and access distribution
- Documentation on updating provisioning profiles (iOS) and signing keys
Process Overview
- Analysis — we study your current CI/CD pipeline and identify integration points
- Firebase Setup — create projects, connect apps, generate keys
- SDK Integration — add Firebase to the code, configure initialization
- Automation — write Fastlane/GitHub Actions scripts for builds and uploads
- Testing — verify build distribution and notifications on both iOS and Android
- Launch — train the team and hand over documentation
Timelines and Cost
Integration into an existing CI/CD pipeline takes 2–4 days. A full cycle including notification setup and group creation takes up to 1.5 weeks. Our service costs $1,500 for a basic pipeline. That investment saves your team up to 20 hours per week in manual distribution. We can evaluate your project for free — contact us.
15+ years of experience in mobile development, 50+ successful Firebase integrations. We guarantee stable build operation and prompt support. Order Firebase App Distribution integration today.







