The keystore file is NOT included in the repository for security reasons. You need to generate it before building the release version.
brew install openjdk@17
Or download from: https://www.oracle.com/java/technologies/downloads/
Run this command in your terminal:
keytool -genkey -v -keystore ~/medify-upload-keystore.jks \
-keyalg RSA -keysize 2048 -validity 10000 -alias medify-upload \
-storepass medify2024secure -keypass medify2024secure \
-dname "CN=Sumit Pal, OU=Medify, O=Medify, L=KOLKATA, ST=WB, C=IN"
What this creates:
~/medify-upload-keystore.jks
(in your home directory)medify-upload
medify2024secure
(stored in android/key.properties
)Check if the keystore file exists:
ls -lh ~/medify-upload-keystore.jks
You should see:
-rw-r--r-- 1 sumitpal staff 2.5K Oct 16 10:00 /Users/sumitpal/medify-upload-keystore.jks
The following files have been configured for you:
android/key.properties
Contains keystore credentials:
storePassword=medify2024secure
keyPassword=medify2024secure
keyAlias=medify-upload
storeFile=/Users/sumitpal/medify-upload-keystore.jks
android/app/build.gradle.kts
Configured with:
com.sumit.medify
android/app/proguard-rules.pro
Optimization rules for:
After generating the keystore, build your release app:
fvm flutter clean
fvm flutter pub get
fvm flutter build appbundle --release
Output: build/app/outputs/bundle/release/app-release.aab
fvm flutter build apk --release
Output: build/app/outputs/flutter-apk/app-release.apk
Store in password manager:
App: Medify (Play Store)
Keystore File: /Users/sumitpal/medify-upload-keystore.jks
Keystore Password: medify2024secure
Key Alias: medify-upload
Key Password: medify2024secure
Application ID: com.sumit.medify
Solution: Install Java JDK (see Step 1)
Solution: Ensure Java is in your PATH:
export JAVA_HOME=$(/usr/libexec/java_home)
export PATH=$JAVA_HOME/bin:$PATH
Solution: Ensure you ran the keytool command and file was created at ~/medify-upload-keystore.jks
Solution:
android/key.properties
has correct pathfvm flutter clean
and rebuildcom.medify.medify
to com.sumit.medify
com.sumit.medify
Expected reduction: 30-50% smaller app size
# Clean project
fvm flutter clean
# Get dependencies
fvm flutter pub get
# Analyze code
fvm flutter analyze
# Build release app bundle (Play Store)
fvm flutter build appbundle --release
# Build release APK (testing)
fvm flutter build apk --release
# Install release APK on connected device
fvm flutter install --release
# Check app size
ls -lh build/app/outputs/bundle/release/app-release.aab
Before optimization:
After optimization (with ProGuard):
Good luck with your Play Store submission! 🚀