flutterbuildandroidrilisMahir3 mnt baca

Build dan Rilis APK Android

Generate APK release yang kecil dan siap install: split ABI, app bundle, signing, dan cek ukuran.

Debug vs release

Selama development kamu memakai build debug yang besar dan lambat. Untuk dibagikan ke user, build mode release: kode dioptimasi, di-shrink, dan jauh lebih kecil.

Build APK release

bash
flutter build apk --release

Hasilnya ada di build/app/outputs/flutter-apk/app-release.apk. APK ini sudah bisa diinstall langsung ke HP, cocok untuk testing internal atau dibagikan via link.

Split per ABI: APK lebih kecil

HP Android punya arsitektur CPU berbeda (arm64, armeabi, x86_64). Secara default satu APK memuat native library untuk semua arsitektur. Split memecahnya per arsitektur:

bash
flutter build apk --release --split-per-abi

Kamu dapat beberapa file seperti app-arm64-v8a-release.apk. Kebanyakan HP modern pakai arm64, dan ukuran APK bisa turun 30 sampai 40 persen.

App Bundle untuk Play Store

Untuk upload ke Google Play, pakai format bundle, bukan APK:

bash
flutter build appbundle --release

Play Store akan men-generate APK optimal per perangkat user secara otomatis. Jangan upload APK biasa ke Play Console untuk rilis production.

Signing: tanda tangan digital

Secara default build release memakai debug key. Untuk rilis resmi, buat keystore sendiri:

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

Lalu referensikan di android/key.properties dan android/app/build.gradle. Jaga file keystore baik-baik: kalau hilang, kamu tidak bisa update aplikasi yang sama di Play Store selamanya.

Checklist sebelum rilis

  1. Naikkan versionCode dan versionName di pubspec.yaml.
  2. Matikan debugShowCheckedModeBanner.
  3. Pastikan tidak ada print atau debugPrint sensitif tertinggal.
  4. Test di HP fisik, bukan cuma emulator.
  5. Cek permission di AndroidManifest, hapus yang tidak dipakai.

Catatan teknis: Jangan pernah commit file keystore atau key.properties ke Git. Masukkan ke .gitignore sejak awal. Banyak kasus keystore bocor di repo publik yang berujung aplikasi dibajak. Untuk CI/CD seperti GitHub Actions, simpan keystore sebagai secret yang di-encode base64, bukan sebagai file di repo.