Back to Blog

Complete Guide: Publishing Your Android App to Google Play Store

May 18, 202610 min readAndroid

So you've built an amazing Flutter app and now you want to share it with the world on Google Play Store? Congratulations! This is an exciting milestone. Let me walk you through the entire process step-by-step, and I promise it's simpler than you think.

Why Publishing Matters

Before we dive into the technical steps, let's talk about why this matters. Publishing your app to Google Play Store gives it credibility, makes it discoverable to millions of potential users, and establishes your presence as a developer. Plus, it's the only official way most users expect to download Android apps.

Prerequisites: What You'll Need

Before starting, make sure you have:

  1. A Google Play Developer Account - Costs $25 (one-time fee)
  2. Your Flutter app ready to release - Tested thoroughly on multiple devices
  3. App icons and screenshots - For your app listing
  4. A compelling app description - To convince users to download
  5. Your keystore file - We'll create this if you don't have it

Step 1: Create a Keystore File (If You Don't Have One)

Think of a keystore as a certificate that proves you're the real owner of this app. It signs your APK so Google knows it's from you. You only need to create this once.

Generate a keystore (macOS & Windows)

Run the keytool command (Java/JDK must be installed and keytool available on your PATH):

macOS / Linux

keytool -genkey -v -keystore ~/my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias

Windows (Command Prompt)

keytool -genkey -v -keystore %USERPROFILE%\my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias

Windows (PowerShell)

keytool -genkey -v -keystore $env:USERPROFILE\my-release-key.jks \
  -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias

The command asks for a keystore password and some identifying info — remember the password. If keytool is not found on Windows, ensure the JDK's bin folder is added to your PATH.

Where to put the keystore in your Flutter project

cp ~/my-release-key.jks android/app/my-release-key.jks
# or keep it outside the repo and reference an absolute path in key.properties

Create key.properties (keep secrets out of VCS)

Create a file at android/key.properties:

storePassword=YOUR_STORE_PASSWORD
keyPassword=YOUR_KEY_PASSWORD
keyAlias=my-key-alias
storeFile=app/my-release-key.jks

Add android/key.properties and the keystore to .gitignore so you don't commit secrets.

Wire the keystore into Gradle

Edit android/app/build.gradle:

def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
  keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}

android {
  signingConfigs {
    release {
      keyAlias keystoreProperties['keyAlias']
      keyPassword keystoreProperties['keyPassword']
      storeFile file(keystoreProperties['storeFile'])
      storePassword keystoreProperties['storePassword']
    }
  }
  buildTypes {
    release {
      signingConfig signingConfigs.release
    }
  }
}

Build the release bundle

flutter build appbundle --release

Pro Tip: Use environment variables or your CI provider's secret store to avoid keeping passwords in plain text.

Step 2: Build Your Release APK

Now let's create the actual app file for Google Play Store:

flutter build appbundle --release

Why appbundle instead of apk? Because Google Play Store uses Android App Bundles now, which are more efficient and smaller in size. The Play Store automatically generates optimized APKs for each device.

This command will take a few minutes. When it's done, you'll have a file at build/app/outputs/bundle/release/app-release.aab

Time Check: The first build might take 5–10 minutes. Subsequent builds are faster. Grab a coffee while you wait!

Step 3: Set Up Your Google Play Developer Account

Head to Google Play Console and sign in with your Google account. If this is your first time, you'll need to:

  1. Create a new developer account (pay the $25 fee)
  2. Accept the developer agreement
  3. Fill in your developer profile (name, email, website)

Step 4: Create Your App Listing

In Google Play Console, click “Create App” and fill in:

  • App Name: What users see on Play Store
  • Default Language: Usually English
  • App Category: Choose the right category (Productivity, Social, Games, etc.)

Step 5: Upload Your App Bundle

Go to the “Release” section on the left menu, then click “Production”. Upload your app-release.aab file here. Google will scan it for security issues — this takes a few seconds.

Security Scan: Google automatically checks your app for malware and suspicious behavior. Legitimate apps pass instantly.

Step 6: Fill In Your App Details

Now comes the marketing part! You need to fill in:

  1. App Icon (512×512 px): Your app's face
  2. Screenshots (at least 2): Show what your app does
  3. Short Description (80 characters): Catchy one-liner
  4. Full Description (4000 characters): Tell users why they need your app
  5. Category and Content Rating: Choose appropriately

Pro writing tips for descriptions:

  • Lead with benefits, not features (“Save 2 hours daily” vs “Tracks time”)
  • Use simple language — not everyone is technical
  • Include a call-to-action (“Download now and start tracking!”)
  • Highlight what makes you different from competitors

Step 7: Set Pricing and Distribution

Decide if your app is:

  • Free: Available to everyone
  • Paid: Users pay upfront (set your price)
  • Freemium: Free with in-app purchases

Also choose which countries to distribute in. Start with English-speaking countries, then expand once you're confident.

Step 8: Target Audience and Rating

Answer questions about your app's content. Google needs to know if it's appropriate for kids, if it contains ads, analytics, etc. Be honest here — deceptive apps get removed quickly.

Step 9: Review and Submit

Check everything one more time. Review the app name, description, screenshots, and pricing. Then click “Submit for Review”. Google will review your app (usually takes 2–24 hours) for policy violations, crashes, and security issues. If everything looks good, your app goes live!

Launch Day: Your app is now on Google Play Store! Tell your friends, share on social media, and start collecting those 5-star reviews.

Common Issues and Solutions

Q: My app was rejected. Why?

A: Common reasons include crashes, misleading descriptions, or policy violations. Read Google's feedback carefully, fix the issue, and resubmit.

Q: How often can I update my app?

A: As often as you want! Once approved, you can submit new versions anytime. Each update goes through a review process.

Q: Can I change my pricing later?

A: Yes! You can make your paid app free, add in-app purchases, or even remove the app. Changes take effect within hours.

Final Thoughts

Publishing to Google Play Store is actually straightforward once you understand the steps. The entire process from setup to submission takes about 30–45 minutes. The hardest part isn't the technical stuff — it's writing compelling app descriptions and creating great screenshots that make people want to download.

So go ahead, take that leap, and get your app in front of millions of potential users. The Play Store is waiting for your app!

Have questions about app publishing? Get in touch — I help developers launch their apps every week.