Mobile Fastlane

Add the framework to your project

Last updated 2026-10-07

Copy the framework into an existing app, configure it and run your first distribution. Expect about 30 minutes for Android, most of it spent on Firebase setup.

Before you begin

Complete the prerequisites and install Ruby and Bundler.

Step 1: Copy the framework

From the project root:

git clone --depth 1 https://github.com/Sujay-Dynamisch/Mobile-Fastlane-Framework.git .fastlane-framework
cp -R .fastlane-framework/{fastlane,.github,docs,.env.example,.ruby-version,Gemfile,Gemfile.lock} .
rm -rf .fastlane-framework

Step 2: Install dependencies

Shell
bundle install

Step 3: Generate the configuration

Run the interactive project wizard. It detects your Android flavors and build types and your iOS schemes, then writes fastlane/config/environments.yml:

my-app — zsh
~/my-app $ bundle exec fastlane init_project
? App name [MyApp]:
? Environments (comma separated) [development,staging,uat,production]:
? Enable Android? (y/n) y
Detected flavors: dev, staging, prod
...
Wrote fastlane/config/environments.yml
Added 9 key(s) to .env.example: FIREBASE_ANDROID_DEVELOPMENT_APP_ID, ...
Full walkthrough: Interactive setup → Initialize a project.

Prefer editing by hand? See Configure Android environments.

Step 4: Create your .env

cp .env.example .env

Fill in the values. See Environment variables & secrets.

Step 5: Set up Firebase

Follow Set up Firebase App Distribution. AI tests are optional: either follow the App Testing agent page, or set app_testing.enabled: false.

Step 6: Validate, then distribute

my-app — zsh
~/my-app $ bundle exec fastlane android doctor environment:development
[14:47:49]: --- Android Distribution Doctor ---
[14:48:03]: Flavor mode: disabled
[14:48:03]: Firebase App Testing Agent: ENABLED (1 test case ID(s) configured)
[14:48:03]: Android development configuration is valid.
~/my-app $ bundle exec fastlane setup
? What do you want to do?
❯ Create new setup
doctor checks everything before the first real build; setup then runs it.
Auto-detected values: when left empty, the framework detects:
  • the app name (app.json → strings.xml → package.json)
  • the package/bundle id (google-services.json → build.gradle)
  • the Firebase app id (google-services.json)
  • the iOS workspace (ios/*.xcworkspace)
  • the iOS scheme (project name)

Next steps

Official documentation

Was this helpful?