How to Publish a Flutter App on the Google Play Store: A Complete Step-by-Step Guide (2026)
Publishing your Flutter app on the Google Play Store is an exciting milestone. While Flutter makes it easy to build apps for multiple platforms, there are several important steps to prepare your Android app for production and successfully publish it.
This guide covers everything from generating a signed app bundle to submitting your app for review on the Google Play Console.
Prerequisites
Before you begin, ensure you have:
Flutter SDK installed
Android Studio (latest stable version)
A Google Play Developer account (one-time registration fee)
An app icon and screenshots
A privacy policy (if your app collects user data)
Verify your Flutter installation:
flutter doctor
Resolve any Android-related issues before proceeding.
Step 1: Prepare Your Flutter Project
Start by cleaning and fetching the latest dependencies:
flutter clean
flutter pub get
Run your application to ensure everything works correctly:
flutter run
Step 2: Update the App Version
Open your pubspec.yaml file and update the version:
version: 1.0.0+1
1.0.0 → Version Name displayed to users.
1 → Version Code used internally by Google Play.
Increase the build number every time you upload a new release.
Step 3: Change the Application ID
Open:
android/app/build.gradle
(or android/app/build.gradle.kts in newer Flutter projects)
Locate:
applicationId "com.example.myapp"
Replace it with a unique package name, for example:
applicationId "com.company.flutterapp"
This package name cannot be changed after publishing.
Step 4: Generate a Keystore
Generate a signing key using the Java keytool command:
keytool -genkeypair -v \
-keystore ~/upload-keystore.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias upload
You'll be prompted to enter:
Password
Name
Organization
Country
Store the keystore securely—you'll need it for future updates.
Step 5: Create key.properties
Inside the android folder, create a file named:
key.properties
Add the following:
storePassword=YOUR_STORE_PASSWORD
keyPassword=YOUR_KEY_PASSWORD
keyAlias=upload
storeFile=/Users/yourname/upload-keystore.jks
Tip: Never commit this file or your keystore to a public repository.
Step 6: Configure Signing
Open android/app/build.gradle (or build.gradle.kts) and configure release signing as described in the official Flutter documentation.
This allows Flutter to generate signed release builds.
Step 7: Configure App Icons
The easiest way to generate launcher icons is with the flutter_launcher_icons package.
Add it to pubspec.yaml:
dev_dependencies:
flutter_launcher_icons: ^0.14.0
flutter_launcher_icons:
android: true
ios: true
image_path: assets/icon/icon.png
Generate icons:
dart run flutter_launcher_icons
Step 8: Configure the App Name
Update the app label in:
android/app/src/main/AndroidManifest.xml
Example:
android:label="My Flutter App"
Step 9: Request Required Permissions
If your app uses features like:
Camera
Location
Storage
Bluetooth
Notifications
Declare only the permissions your app actually needs in the Android manifest and request runtime permissions where required.
Step 10: Build the Release App Bundle
Google Play recommends uploading an Android App Bundle (.aab).
Build it using:
flutter build appbundle
After the build completes, you'll find the file at:
build/app/outputs/bundle/release/app-release.aab
Step 11: Test the Release Build
Install the release version on a physical device:
flutter install
Verify:
Login
Navigation
Push notifications
Payments
Camera
Location
Offline functionality
Testing the release build helps catch issues that may not appear in debug mode.
Step 12: Create a Google Play Developer Account
Sign in to the Google Play Console and complete the one-time developer registration.
After registration, you'll have access to the Play Console dashboard.
Step 13: Create a New App
In the Play Console:
Click Create App
Enter the app name.
Choose the default language.
Select whether the app is an app or a game.
Indicate whether it's free or paid.
Step 14: Complete Store Listing
Provide:
App title
Short description
Full description
App icon (512 × 512 px)
Feature graphic (1024 × 500 px)
Screenshots for phones (and tablets if supported)
A well-written store listing can improve downloads.
Step 15: Complete App Content
Google Play requires you to complete several policy declarations, which may include:
Privacy policy
Data safety
Ads declaration
Content rating questionnaire
Target audience
Government apps (if applicable)
News apps (if applicable)
Ensure the information accurately reflects your app.
Step 16: Upload the App Bundle
Go to:
Release → Production
Create a new release and upload your .aab file.
Google Play will process the upload and perform validation checks.
Step 17: Review and Publish
Review all sections for completeness.
Once everything is complete:
Submit the release.
Wait for Google's review.
After approval, your app will become available on the Play Store according to your chosen rollout settings.
Common Publishing Errors
Here are some common issues developers encounter:
Version code already exists
Invalid app signing configuration
Missing privacy policy
Missing Data Safety form
Unsupported target SDK version
Incorrect package name
App crashes on launch
Missing required permissions or declarations
Review Play Console warnings carefully before publishing.
Useful Flutter Commands
flutter doctor
flutter clean
flutter pub get
flutter run
flutter build apk
flutter build appbundle
flutter install
Best Practices
Always upload an Android App Bundle (.aab) instead of an APK.
Keep your Flutter SDK and dependencies up to date.
Increase the version code for every release.
Test thoroughly on multiple Android devices.
Securely back up your signing keystore.
Complete all required Play Console forms before submitting.
Conclusion
Publishing a Flutter app to the Google Play Store is a straightforward process once your project is properly configured. By preparing your app, generating a signed release, testing it thoroughly, and completing the Play Console requirements, you can confidently launch your app to millions of Android users.
Good luck with your release, and happy Flutter development!
Comments
Post a Comment