Android Release (APK & AAB)
Create your signing key once, then build an APK to share or an AAB for Google Play.
The apps are already set up for release signing. You only create two files per app: no Gradle code to edit.
Create the keystore (once)#
In the app's android folder, for example customer/android:
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
Type a password twice, answer the questions (or press Enter), and type yes. You can use one keystore for all three apps, or one each.
Create key.properties#
In the same android folder:
storePassword=your-keystore-password
keyPassword=your-keystore-password
keyAlias=upload
storeFile=upload-keystore.jks
storeFile is read from the android/ folder. For a keystore elsewhere, write the full path with forward slashes.
Raise the version#
In pubspec.yaml, version: 1.0.0+1. The number after + must go up for every upload: 1.0.1+2, 1.0.2+3…
Build#
flutter clean
flutter pub get
flutter build appbundle --release
| Build | Command | File | For |
|---|---|---|---|
| AAB | flutter build appbundle --release |
build/app/outputs/bundle/release/app-release.aab |
Google Play |
| APK | flutter build apk --release |
build/app/outputs/flutter-apk/app-release.apk |
Installing directly, for example the store and delivery boy apps for your own team |
Do it in customer, store and driver. Each is a separate app in the Play Console.
Back up the keystore
Keep the .jks file and its password safe and never share them. Lost them? You cannot update your app on Google Play without asking Google to reset the upload key. key.properties and *.jks are already ignored by Git.
No key.properties = debug signing
Without android/key.properties, release builds are signed with the debug key. Fine for testing, refused by Google Play.
Delivery boy app on Google Play
The app shares the rider's location in the background while online and shows order requests full screen like a call. In the Play Console (App content) explain how riders use these permissions, and add a short video if Play asks.
After the first upload, add the Google Play app signing fingerprints to Firebase: SHA keys.