Folder structure
Last updated 2026-10-07
The files the framework adds to <project-root>. Files marked ★ are the ones you edit. Everything else is generic and identical across projects.
<project-root>/
├── Gemfile / Gemfile.lock # fastlane 2.240.1 + firebase_app_distribution plugin 1.0.0
├── .ruby-version # 3.4.1
├── .env # local secrets (git-ignored)
├── .env.example # template of every variable the framework reads
├── .github/workflows/
│ ├── android-distribution.yml # manual "Run workflow" → Firebase
│ └── ios-distribution.yml # manual "Run workflow" → TestFlight
└── fastlane/
├── Fastfile # all lanes (generic – do not edit per project)
├── Appfile / Matchfile # intentionally empty; identity comes from config
├── Pluginfile # firebase_app_distribution plugin
├── FRAMEWORK.md # full reference
├── README.md # auto-generated by fastlane on every run (lane list)
├── release_notes.txt # used when RELEASE_NOTES_FILE points to it
├── .setup_state.yml # "last used" profile pointer (git-ignored)
├── config/
│ ├── environments.yml # ★ project / platform / environment configuration
│ ├── testing.yml # ★ App Testing agent: on/off, devices, e-mail reports
│ ├── test_case_ids.yml # ★ which Firebase test cases to run
│ └── profiles/ # ★ saved setups from `fastlane setup` (committed)
└── lib/
├── config_loader.rb # loads YAML, expands ${ENV_VARS}, profile overrides
├── validation_helper.rb # required values, files, Gradle task, production guard
├── artifact_helper.rb # finds APK/AAB, copies a nicely named file into dist/
├── release_notes.rb # git / manual / file release notes
├── notification_helper.rb# Teams Adaptive Cards / Slack webhooks
├── app_testing_agent.rb # builds the test_devices / test_case_ids plugin options
├── test_result_parser.rb # turns the test outcome into report data
├── email_notifier.rb # SMTP e-mail with the AI test report
├── project_detector.rb # detects flavors, build types, iOS schemes
├── project_bootstrap.rb # `fastlane init_project` wizard
├── setup_wizard.rb # `fastlane setup` wizard
└── profile_store.rb # saves / loads fastlane/config/profiles/*.yml
Note: generated output (
dist/, Fastlane reports) is git-ignored. See Configure .gitignore.Official documentation
Was this helpful?