How to Automate Flutter App Releases on Google Play Store with Fastlane
How to Automate Flutter App Releases on Google Play Store with Fastlane
How to Automate Flutter App Releases on Google Play Store with Fastlane

How to Automate Flutter App Releases on Google Play Store with Fastlane

By:

Sunil Kumar Muduli

14 Dec 2025

Manually uploading APKs or AABs to the Play Store can be painful and error-prone, especially when you have multiple build variants, version bumps, and signing steps.

With Fastlane, you can automate all of that, directly from your terminal or CI/CD pipeline.

In this guide, we'll set up Fastlane for Flutter to automatically build, sign, and publish your app to the Google Play Store.

Fatlane for Flutter

Prerequisites

Before starting, make sure you have:

  • Flutter installed

  • An Android app already published once manually

  • Access to the Google Play Developer account

  • Access to Google Cloud console for Google Android Developer API

  • Ruby installed (Fastlane runs on Ruby)

Setup Google Play API Access

  1. Go to the Google Cloud Console of your project.

  2. Go to APIs & Services and enable Google Play Android Developer API.

  3. Then create a service account under IAM & Admin. Note the email address.

  4. Under that service account, create a key of type JSON and download that key.

  5. Go to the Google Play developer console of your app and add that service account created before. Grant that account Release Manager or Admin access to your app.

Install Fastlane

Run this in your terminal:

sudo gem install fastlane

Then navigate into your Flutter project’s android/ directory:

cd android
fastlane init

Provide the json key path, which we have downloaded from GCP before.

Configure Fastlane

As our installation has completed, we need to set up the fastlane script for auto deplyment.

Open android/fastlane/Fastfile and inside android platform lanes, we will declare a new pipeline for deployment to internal tests.

default_platform(:android)

platform :android do
  desc "Deploy Internal Testing (Upload to play store)"
  lane :deploy_dev_internal do
      system('flutter pub get')
      system('flutter build appbundle lib/main_dev.dart --flavor=dev') // Replace with your flutter build appbundle command
      upload_to_play_store(
           track: 'internal',
           release_status: 'completed',
           metadata_path: './fastlane/metadata',
           json_key: './fastlane/gcp-project-key1234567890.json', //Replace with your json key path
           aab: '../build/app/outputs/bundle/devRelease/app-dev-release.aab', // Replace with your output file path
           skip_upload_apk: false,
           skip_upload_aab: false,
           skip_upload_metadata: true,
           skip_upload_changelogs: true,
           skip_upload_images: true,
           skip_upload_screenshots: true,
           track_promote_to: 'internal',
           track_promote_release_status: 'completed',
           validate_only: false,
           timeout: 300,
           changes_not_sent_for_review: false,
           rescue_changes_not_sent_for_review: true,
           in_app_update_priority: 0,
           ack_bundle_installation_warning: false
      )      
    end
end

Test Your Fastlane Setup

Run:

cd android
fastlane deploy

Fastlane will:

  • Build your Flutter app

  • Sign it with your key

  • Upload it to the Google Play Console to your desired track.

Conclusion

Integrating Fastlane into your Flutter workflow saves hours of repetitive work and prevents common release errors.

It's lightweight, battle-tested, and integrates easily with any CI/CD platform.

If you want even smoother releases, you can extend your lanes to:

  • Notify Slack/Discord

  • Upload changelogs

  • Tag git releases automatically

Once you set this up, shipping updates to the Play Store is literally a one-line command.


Frequently Asked Questions

1. Do I need a CI/CD pipeline to use Fastlane for Flutter app deployment?

No, Fastlane works both locally and in CI/CD pipelines. You can run Fastlane commands directly from your terminal, although pairing it with GitHub Actions, GitLab CI, or Bitrise makes Play Store publishing fully automated.

2. Is Fastlane safe for managing Play Store credentials and signing keys?

Yes, Fastlane supports secure credential handling through encrypted environment variables, service account JSON files, and tools like fastlane match. When configured properly, your signing keys and Play Store API access remain fully protected.

3. Can Fastlane automate versioning for Flutter apps before publishing to the Play Store?

Yes. Fastlane can automatically bump version codes, update build numbers, and generate changelogs before uploading your APK/AAB, ensuring every Play Store release follows proper versioning rules.

Manually uploading APKs or AABs to the Play Store can be painful and error-prone, especially when you have multiple build variants, version bumps, and signing steps.

With Fastlane, you can automate all of that, directly from your terminal or CI/CD pipeline.

In this guide, we'll set up Fastlane for Flutter to automatically build, sign, and publish your app to the Google Play Store.

Fatlane for Flutter

Prerequisites

Before starting, make sure you have:

  • Flutter installed

  • An Android app already published once manually

  • Access to the Google Play Developer account

  • Access to Google Cloud console for Google Android Developer API

  • Ruby installed (Fastlane runs on Ruby)

Setup Google Play API Access

  1. Go to the Google Cloud Console of your project.

  2. Go to APIs & Services and enable Google Play Android Developer API.

  3. Then create a service account under IAM & Admin. Note the email address.

  4. Under that service account, create a key of type JSON and download that key.

  5. Go to the Google Play developer console of your app and add that service account created before. Grant that account Release Manager or Admin access to your app.

Install Fastlane

Run this in your terminal:

sudo gem install fastlane

Then navigate into your Flutter project’s android/ directory:

cd android
fastlane init

Provide the json key path, which we have downloaded from GCP before.

Configure Fastlane

As our installation has completed, we need to set up the fastlane script for auto deplyment.

Open android/fastlane/Fastfile and inside android platform lanes, we will declare a new pipeline for deployment to internal tests.

default_platform(:android)

platform :android do
  desc "Deploy Internal Testing (Upload to play store)"
  lane :deploy_dev_internal do
      system('flutter pub get')
      system('flutter build appbundle lib/main_dev.dart --flavor=dev') // Replace with your flutter build appbundle command
      upload_to_play_store(
           track: 'internal',
           release_status: 'completed',
           metadata_path: './fastlane/metadata',
           json_key: './fastlane/gcp-project-key1234567890.json', //Replace with your json key path
           aab: '../build/app/outputs/bundle/devRelease/app-dev-release.aab', // Replace with your output file path
           skip_upload_apk: false,
           skip_upload_aab: false,
           skip_upload_metadata: true,
           skip_upload_changelogs: true,
           skip_upload_images: true,
           skip_upload_screenshots: true,
           track_promote_to: 'internal',
           track_promote_release_status: 'completed',
           validate_only: false,
           timeout: 300,
           changes_not_sent_for_review: false,
           rescue_changes_not_sent_for_review: true,
           in_app_update_priority: 0,
           ack_bundle_installation_warning: false
      )      
    end
end

Test Your Fastlane Setup

Run:

cd android
fastlane deploy

Fastlane will:

  • Build your Flutter app

  • Sign it with your key

  • Upload it to the Google Play Console to your desired track.

Conclusion

Integrating Fastlane into your Flutter workflow saves hours of repetitive work and prevents common release errors.

It's lightweight, battle-tested, and integrates easily with any CI/CD platform.

If you want even smoother releases, you can extend your lanes to:

  • Notify Slack/Discord

  • Upload changelogs

  • Tag git releases automatically

Once you set this up, shipping updates to the Play Store is literally a one-line command.


Frequently Asked Questions

1. Do I need a CI/CD pipeline to use Fastlane for Flutter app deployment?

No, Fastlane works both locally and in CI/CD pipelines. You can run Fastlane commands directly from your terminal, although pairing it with GitHub Actions, GitLab CI, or Bitrise makes Play Store publishing fully automated.

2. Is Fastlane safe for managing Play Store credentials and signing keys?

Yes, Fastlane supports secure credential handling through encrypted environment variables, service account JSON files, and tools like fastlane match. When configured properly, your signing keys and Play Store API access remain fully protected.

3. Can Fastlane automate versioning for Flutter apps before publishing to the Play Store?

Yes. Fastlane can automatically bump version codes, update build numbers, and generate changelogs before uploading your APK/AAB, ensuring every Play Store release follows proper versioning rules.

Manually uploading APKs or AABs to the Play Store can be painful and error-prone, especially when you have multiple build variants, version bumps, and signing steps.

With Fastlane, you can automate all of that, directly from your terminal or CI/CD pipeline.

In this guide, we'll set up Fastlane for Flutter to automatically build, sign, and publish your app to the Google Play Store.

Fatlane for Flutter

Prerequisites

Before starting, make sure you have:

  • Flutter installed

  • An Android app already published once manually

  • Access to the Google Play Developer account

  • Access to Google Cloud console for Google Android Developer API

  • Ruby installed (Fastlane runs on Ruby)

Setup Google Play API Access

  1. Go to the Google Cloud Console of your project.

  2. Go to APIs & Services and enable Google Play Android Developer API.

  3. Then create a service account under IAM & Admin. Note the email address.

  4. Under that service account, create a key of type JSON and download that key.

  5. Go to the Google Play developer console of your app and add that service account created before. Grant that account Release Manager or Admin access to your app.

Install Fastlane

Run this in your terminal:

sudo gem install fastlane

Then navigate into your Flutter project’s android/ directory:

cd android
fastlane init

Provide the json key path, which we have downloaded from GCP before.

Configure Fastlane

As our installation has completed, we need to set up the fastlane script for auto deplyment.

Open android/fastlane/Fastfile and inside android platform lanes, we will declare a new pipeline for deployment to internal tests.

default_platform(:android)

platform :android do
  desc "Deploy Internal Testing (Upload to play store)"
  lane :deploy_dev_internal do
      system('flutter pub get')
      system('flutter build appbundle lib/main_dev.dart --flavor=dev') // Replace with your flutter build appbundle command
      upload_to_play_store(
           track: 'internal',
           release_status: 'completed',
           metadata_path: './fastlane/metadata',
           json_key: './fastlane/gcp-project-key1234567890.json', //Replace with your json key path
           aab: '../build/app/outputs/bundle/devRelease/app-dev-release.aab', // Replace with your output file path
           skip_upload_apk: false,
           skip_upload_aab: false,
           skip_upload_metadata: true,
           skip_upload_changelogs: true,
           skip_upload_images: true,
           skip_upload_screenshots: true,
           track_promote_to: 'internal',
           track_promote_release_status: 'completed',
           validate_only: false,
           timeout: 300,
           changes_not_sent_for_review: false,
           rescue_changes_not_sent_for_review: true,
           in_app_update_priority: 0,
           ack_bundle_installation_warning: false
      )      
    end
end

Test Your Fastlane Setup

Run:

cd android
fastlane deploy

Fastlane will:

  • Build your Flutter app

  • Sign it with your key

  • Upload it to the Google Play Console to your desired track.

Conclusion

Integrating Fastlane into your Flutter workflow saves hours of repetitive work and prevents common release errors.

It's lightweight, battle-tested, and integrates easily with any CI/CD platform.

If you want even smoother releases, you can extend your lanes to:

  • Notify Slack/Discord

  • Upload changelogs

  • Tag git releases automatically

Once you set this up, shipping updates to the Play Store is literally a one-line command.


Frequently Asked Questions

1. Do I need a CI/CD pipeline to use Fastlane for Flutter app deployment?

No, Fastlane works both locally and in CI/CD pipelines. You can run Fastlane commands directly from your terminal, although pairing it with GitHub Actions, GitLab CI, or Bitrise makes Play Store publishing fully automated.

2. Is Fastlane safe for managing Play Store credentials and signing keys?

Yes, Fastlane supports secure credential handling through encrypted environment variables, service account JSON files, and tools like fastlane match. When configured properly, your signing keys and Play Store API access remain fully protected.

3. Can Fastlane automate versioning for Flutter apps before publishing to the Play Store?

Yes. Fastlane can automatically bump version codes, update build numbers, and generate changelogs before uploading your APK/AAB, ensuring every Play Store release follows proper versioning rules.

Explore other blogs

Explore other blogs

let's get in touch

Have a Project idea?

Connect with us for a free consultation !

Confidentiality with NDA

Understanding the core business.

Brainstorm with our leaders

Daily & Weekly Updates

Super competitive pricing

let's get in touch

Have a Project idea?

Connect with us for a free consultation !

Confidentiality with NDA

Understanding the core business.

Brainstorm with our leaders

Daily & Weekly Updates

Super competitive pricing