How a distribution run works
Last updated 2026-10-07
Each distribute lane runs a fixed pipeline. Every step either succeeds or stops the lane with a clear error, and a failure notification is sent. Pick a platform to see its steps.
Distribution pipeline
android distribute
Validate config → production guard → Gradle build → find APK/AAB → copy to dist/
Release notes (file → text → git commits)
Are AI tests enabled AND groups/testers set?
Yes
- Upload and distribute to manual testers without test options
- Re-upload the same APK (Firebase reuses the release:
RELEASE_UNMODIFIED), start AI tests and wait for results (blocking)
No
- Single upload (+ AI tests if enabled) + distribute
AI test report e-mail (if enabled) → Teams App Testing Agent Report card → the lane fails if tests failed
Why two uploads?: the Firebase plugin only distributes to groups after AI tests pass. Splitting the call means manual testers always receive the build, while failing AI tests still fail the lane.
my-app — zsh
~/my-app $ bundle exec fastlane android distribute environment:staging[14:02:11]: Starting Fastlane lane: distribute[14:02:11]: --- Android Build — STAGING ---[14:02:11]: Gradle task: assembleRelease[14:06:40]: BUILD SUCCESSFUL in 4m 29s[14:06:41]: Android build completed.[14:06:41]: Artifact: dist/MyApp-staging-v1.4.0-57.apk[14:06:41]: --- Firebase App Distribution — STAGING ---[14:06:58]: ✅ Uploaded the APK.[14:06:59]: ✅ Distributed to "qa-team".[14:07:00]: --- Firebase App Testing Agent ---[14:10:12]: login-flow · Galaxy A54 · Android 14 PASSED[14:10:13]: Fastlane completed successfully: distributeOfficial documentation
- FirebaseDistribute Android apps to testers using fastlanefirebase.google.com/docs/app-distribution/android/distribute-fastlane
- FirebaseApp Testing agent (AI tests)firebase.google.com/docs/app-distribution/android/app-testing-agent
- fastlanebuild_app (gym) actiondocs.fastlane.tools/actions/build_app/
- fastlaneupload_to_testflight (pilot) actiondocs.fastlane.tools/actions/upload_to_testflight/
Was this helpful?