🛒 Bringo

Customer App

Build Android (signed APK / AAB)

For the Play Store you need a signed app bundle (AAB). The app is already wired to sign releases from an android/key.properties file — you just create your keystore.

1. Create a keystore (one-time)

keytool -genkey -v -keystore customer-release.keystore \
  -keyalg RSA -keysize 2048 -validity 10000 -alias customer
🔐
Back up this .keystore file and its passwords somewhere safe. If you lose them you can never update the app on the Play Store — you'd have to publish a brand-new listing.

2. Point the app at your keystore

Copy android/key.properties.example to android/key.properties and fill it in:

storePassword=your-keystore-password
keyPassword=your-key-password
keyAlias=customer
storeFile=/absolute/path/to/customer-release.keystore
ℹ️
The release build config already reads this file. If key.properties is missing, the build falls back to debug signing (fine for testing, not accepted by the Play Store).

3. Set the version

Edit android/version.properties before every Play Store upload:

versionCode=2
versionName=1.0.1
versionCode
Integer. Must increase for every AAB you upload — Google rejects a bundle whose code is ≤ a previous upload.
versionName
The human-facing version string shown on the store listing (e.g. 1.0.1).
ℹ️
The build reads the version from android/version.properties directly, so your edits always stick. Don't edit the version in android/local.properties — Flutter regenerates that file from pubspec.yaml on every build, which is why version edits there kept resetting to 1.

4. Build

The Google Maps key is hardcoded in AndroidManifest.xml (see API URL & Maps), so no Maps flag is needed.

App Bundle (for the Play Store):

flutter build appbundle --release --dart-define=APP_ENV=prod

APK (for direct install / testing):

flutter build apk --release --dart-define=APP_ENV=prod
AAB output
build/app/outputs/bundle/release/app-release.aab
APK output
build/app/outputs/flutter-apk/app-release.apk

5. Verify the release build

Install the APK on a real device and confirm login, maps, payments and notifications work with your live keys before publishing.

📦
Code shrinking (R8/ProGuard) is enabled for release. Rules live in android/app/proguard-rules.pro — only edit if a plugin needs a keep-rule.

6. Publish

  1. Google Play Console → create the app → fill the store listing.
  2. Upload the AAB to a testing track first, then production.
  3. Complete content rating, data-safety and privacy policy forms.
👉
Next: Build iOS.