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| Option | What happens |
|---|---|
| Use last setup | Runs the most recently used profile without further questions. |
| Use a saved setup | Pick any profile from fastlane/config/profiles/. |
| Create new setup | Asks every question, then offers to save the result. |
| Edit a saved setup | Asks every question with the profile's values pre-selected, then saves over it. |
| Delete a saved setup | Removes 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?❯ distributeOnly 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:❯ AABGradle task: bundleStagingReleaseArtifact glob: android/app/build/outputs/bundle/stagingRelease/*.aab? Use this Gradle task and glob? (y/n) y| Choice | Pick this when | Official reference |
|---|---|---|
| APK | Testers install directly from Firebase App Distribution, or you want AI tests (the App Testing agent needs an APK). | Firebase + fastlane |
| AAB | You 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) orfile(a path such asfastlane/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 androidEnvironment stagingAction distributeAndroid flavor stagingAndroid build type releaseArtifact AABGradle task bundleStagingReleaseArtifact glob android/app/build/outputs/bundle/stagingRelease/*.aabFirebase groups qa-teamAI App Testing offRelease 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.ymlCruising over to lane 'android doctor' 🚖Android staging configuration is valid.Cruising over to lane 'android distribute' 🚖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:trueOfficial documentation
- AndroidConfigure build variants (flavors and build types)developer.android.com/build/build-variants
- AndroidAbout Android App Bundles (AAB)developer.android.com/guide/app-bundle
- FirebaseManage testers and groupsfirebase.google.com/docs/app-distribution/add-remove-testers
- fastlaneLanes: options, platforms, before_all / error blocksdocs.fastlane.tools/advanced/lanes/
Was this helpful?