Below is a clear, up-to-date step-by-step guide (2026) for publishing a Flutter app to the Google Play Console, written for beginners but detailed enough for production apps.
1️⃣ Prerequisites (Do This First)
✅ Accounts & Tools
- Google Play Developer Account
- One-time fee: $25
- Sign up at Google Play Console
- Flutter SDK (stable channel)
- Android Studio
- Android SDK
- Android SDK Build-Tools
- Java JDK 17+ (required for modern Android builds)
Check Flutter:
flutter doctor
Make sure no errors remain.
2️⃣ Prepare Your Flutter App
🔹 Update App Info
Edit pubspec.yaml:
name: my_app
description: My awesome Flutter app
version: 1.0.0+1
1.0.0→ user-visible version+1→ build number (must increase for every upload)
🔹 App Icon
Use flutter_launcher_icons:
dev_dependencies:
flutter_launcher_icons: ^0.13.1
flutter_icons:
android: true
ios: false
image_path: "assets/icon.png"
Run:
flutter pub get
flutter pub run flutter_launcher_icons
3️⃣ Configure Android App Details
🔹 Application ID (Package Name)
Open:
android/app/build.gradle
Set:
applicationId "com.yourcompany.yourapp"
⚠️ Cannot be changed after publishing
🔹 Minimum SDK (Recommended 2026)
minSdkVersion 23
targetSdkVersion 34
4️⃣ Create a Keystore (VERY IMPORTANT)
This signs your app forever. Do not lose it.
keytool -genkey -v \
-keystore upload-keystore.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias upload
Move upload-keystore.jks to:
android/app/
🔹 Configure Signing
Create key.properties in android/:
storePassword=your_password
keyPassword=your_password
keyAlias=upload
storeFile=upload-keystore.jks
Edit android/app/build.gradle:
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
5️⃣ Build Release App Bundle (AAB)
Google Play requires AAB, not APK.
flutter clean
flutter pub get
flutter build appbundle
Output:
build/app/outputs/bundle/release/app-release.aab
6️⃣ Create App in Google Play Console
- Open Play Console
- Click Create app
- Fill:
- App name
- Default language
- App type → App
- Category → App or Game
- Select Free/Paid
7️⃣ Complete Play Console Setup
🔹 App Access
- Select All functionality available
🔹 Store Listing
Upload:
- App description
- Short description
- App icon (512×512)
- Feature graphic (1024×500)
- Screenshots (phone required)
🔹 Privacy Policy (Mandatory)
- Host on GitHub Pages / website / Google Docs (public)
- Add URL in Play Console
🔹 Data Safety Form
Declare:
- What data you collect (email, location, etc.)
- How it’s used
- If data is encrypted
⚠️ Incorrect info can cause rejection.
🔹 Content Rating
- Fill questionnaire
- Get automatic rating
🔹 Target Audience
- Select age groups
- If under 13, stricter rules apply
8️⃣ Upload App Bundle
- Go to Production → Releases
- Create new release
- Upload
app-release.aab - Add release notes
- Save
9️⃣ Enable Google Play App Signing
✔ Accept Google Play App Signing
- Google manages your production key
- You keep your upload key
(Strongly recommended)
🔟 Review & Publish
- Fix all warnings (green checkmarks)
- Click Submit for review
- Review time:
- New apps: 2–7 days
- Updates: few hours to 2 days
11️⃣ After Publishing
🔁 Updating App
- Increase version:
version: 1.0.1+2
- Build AAB again
- Upload new release
🚨 Common Rejection Reasons (2026)
- Missing privacy policy
- Incorrect Data Safety answers
- Broken login
- App crashes
- Misleading screenshots
- Copyright violations
✅ Optional (Recommended)
- Enable Crashlytics
- Enable ANR monitoring
- Add in-app updates
- Use Play Integrity API

[…] generate screenshots for the Google Play Console, you’re really creating store listing screenshots that show your app in action. Here’s a clear, […]
[…] a published app from the Google Play Console once it has been published. Google does not allow permanent deletion of published apps. However, you can remove it from Google Play so users can no longer find or […]
[…] guide to integrating Firebase into a Flutter project (Android + iOS). This works for most Firebase services (Auth, Firestore, Analytics, […]
[…] is a complete Flutter example (single file) that […]