Mobile Fastlane

FAQ

Last updated 2026-10-07

Answers to common questions about the framework.

Do I need Android flavors?
No. A project with only assembleRelease works with use_flavors: false.
How do I support a custom Gradle task?
Set the exact task, e.g. gradle_task: "assembleInternalQaRelease". Don't change the Fastfile.
Can I upload AAB instead of APK?
Yes. Set artifact.type: AAB, use a bundle… task and the .aab output path. This is subject to Firebase's Google Play linkage requirements.
Why groups instead of tester e-mails?
Groups scale better, and the config stays stable while membership changes in Firebase.
Can Teams be enabled without changing the Fastfile?
Yes. Set TEAMS_WEBHOOK_URL and notifications.teams.enabled: true. Notification failures are non-blocking.
Can production be protected?
Yes, with allowed branches, CI-only execution and local confirmation.
Why can staging and production both use assembleRelease?
The environment is a distribution concern. Truly isolated environments should use separate app ids, flavors or schemes.
Does iOS use Firebase App Distribution?
No. iOS goes Xcode → TestFlight.
How do I choose APK or AAB per build without editing YAML?
Run bundle exec fastlane setup and pick the artifact, or save the choice as a profile and run it with run_profile.
Are saved profiles safe to commit?
Yes, as long as they contain no secrets. Profiles hold choices (env, flavor, artifact, groups); credentials stay in .env or CI secrets.
Does the interactive setup replace the platform lanes?
No. It produces overrides and then calls the same doctor, build and distribute lanes, so validation and production guards still apply.
Was this helpful?