Mobile Fastlane

Run the setup wizard (setup)

Last updated 2026-10-07

fastlane setup is the command you run for everyday builds. It starts with a menu: reuse what you did last time, or answer a few questions to build something different.

Step 1: Start

my-app — zsh
~/my-app $ bundle exec fastlane setup
[11:02:15]: Starting Fastlane lane: setup
? What do you want to do?
1. Use last setup (staging-aab: android · staging · AAB · distribute)
2. Use a saved setup
3. Create new setup
4. Edit a saved setup
5. Delete a saved setup
❯ 3
The first menu. When no profiles exist yet, the wizard goes straight to “Create new setup”.
OptionWhat happens
Use last setupRuns the most recently used profile without further questions.
Use a saved setupPick any profile from fastlane/config/profiles/.
Create new setupAsks every question, then offers to save the result.
Edit a saved setupAsks every question with the profile's values pre-selected, then saves over it.
Delete a saved setupRemoves a profile file after confirmation, then returns to the menu.

Step 2: Platform and environment

my-app — zsh
--- New build setup ---
? Platform:
❯ android
? Environment:
❯ staging
? What should this run do?
❯ distribute

Only platforms with enabled: true are offered. When a single platform is enabled, the wizard selects it automatically. When you choose both, only the environments that both platforms define are listed.

Step 3: Android variant

my-app — zsh
? Android flavor:
❯ staging
? Build type:
❯ release
? Artifact:
❯ AAB
Gradle task: bundleStagingRelease
Artifact glob: android/app/build/outputs/bundle/stagingRelease/*.aab
? Use this Gradle task and glob? (y/n) y
ChoicePick this whenOfficial reference
APKTesters install directly from Firebase App Distribution, or you want AI tests (the App Testing agent needs an APK).Firebase + fastlane
AABYou are preparing a Play Store build. Firebase can distribute AABs only when the Firebase project is linked to Google Play.About App Bundles
Tip: answer n to “Use this Gradle task and glob?” for custom variants such as assembleInternalQaRelease, then type the exact task and output path.

Step 4: Distribution options

my-app — zsh
? Firebase tester groups (comma separated, blank = from config): qa-team
? Firebase tester emails (comma separated, optional):
Firebase AI App Testing needs an APK — it will be off for this AAB build.
? Release notes:
❯ git
? Number of commits [15]: 10
  • Groups / testers: leave blank to use the values from environments.yml / .env (manage testers and groups).
  • Release notes: git (last N commit subjects), manual (text you type now) or file (a path such as fastlane/release_notes.txt).
  • For iOS the wizard instead asks for the scheme, the export method and the TestFlight groups.

Step 5: Review, save and run

my-app — zsh
--- Setup summary ---
Platforms android
Environment staging
Action distribute
Android flavor staging
Android build type release
Artifact AAB
Gradle task bundleStagingRelease
Artifact glob android/app/build/outputs/bundle/stagingRelease/*.aab
Firebase groups qa-team
AI App Testing off
Release notes git
? Use this setup? (y/n) y
? Save this setup for next time? (y/n) y
? Profile name [staging-aab]:
Saved fastlane/config/profiles/staging-aab.yml
Cruising over to lane 'android doctor' 🚖
Android staging configuration is valid.
Cruising over to lane 'android distribute' 🚖
Answer n to “Use this setup?” to discard it and return to the menu.
Note: Build only runs never upload. The wizard switches Firebase upload and AI tests off for that run, so doctor doesn't ask for Firebase credentials.
Warning: production environments still go through the production guard (allowed branches, confirmation). The wizard does not bypass it.

Dry run

Add dry_run:true to run only doctor and info for the chosen setup, without building:

Shell
bundle exec fastlane setup dry_run:true

Official documentation

Was this helpful?