Skip to main content

How to Release Your Android App on Google Play Store - Complete Guide

Step-by-step guide to securely prepare and release your Android app on the Google Play Store. Learn about signing keys, app bundles, and the release checklist.

2026 March 18 by Omniversify Team
3 min read
GuideAndroidFlutterDevelopment

This comprehensive guide outlines the essential steps to securely prepare your Android app for release on the Google Play Store. Whether you’re using Flutter, Kotlin, or Java, these best practices apply to all Android development workflows.

Overview

Releasing an Android app requires careful attention to security, especially regarding signing keys and configuration files. This guide covers everything from generating your signing key to building the final app bundle.

1. 🔐 Secure Signing Keys

IMPORTANT: Never commit your .jks or key.properties files to version control (GitHub). These files are already added to .gitignore for your protection.

Generate an Upload Keystore

If you haven’t already generated your upload key, run this command:

keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

Store this file securely—it’s required for all future updates to your app.

Create key.properties File

Create a file at android/key.properties with the following content:

storePassword=<your-store-password>
keyPassword=<your-key-password>
keyAlias=upload
storeFile=<path-to-your-keystore-file>

Security Tip: Never commit this file to version control. Consider using environment variables or a secrets manager for production builds.

2. 🏗️ Update Build Configuration

To use the key.properties file in your Flutter project, update android/app/build.gradle.kts:

// Add this near the top of the 'android' block
val keystorePropertiesFile = rootProject.file("key.properties")
val keystoreProperties = Properties()
if (keystorePropertiesFile.exists()) {
    keystoreProperties.load(FileInputStream(keystorePropertiesFile))
}

android {
    // ...
    signingConfigs {
        create("release") {
            keyAlias = keystoreProperties["keyAlias"] as String?
            keyPassword = keystoreProperties["keyPassword"] as String?
            storeFile = keystoreProperties["storeFile"]?.let { file(it) }
            storePassword = keystoreProperties["storePassword"] as String?
        }
    }

    buildTypes {
        getByName("release") {
            signingConfig = signingConfigs.getByName("release")
            // Enable obfuscation for smaller APK size
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
        }
    }
}

3. 📦 Build the App Bundle

Google Play Store requires the App Bundle (.aab) format instead of APK for better compression and modular delivery:

flutter build appbundle --release

The output file will be located at: build/app/outputs/bundle/release/app-release.aab

4. ✅ Pre-Launch Checklist

Before uploading to Google Play Console, verify:

  • Version name and code are updated in pubspec.yaml
  • App icon is correctly generated and displayed
  • Privacy Policy is uploaded to your website or GitHub Pages
  • All debug prints and logs are removed or disabled
  • Keystore file is backed up securely
  • Test flight build on a physical device before release

Need Help?

For more detailed documentation on Android signing, visit the official Android documentation.