Membuat file APK / AAB melalui flutter terbilang gampang gampang susah. berbeda seperti saat kita mengembangkan secara native dimana kita bisa langsung menggunakan menu build -> Generate Signed Bundle / APK dengan mudah. Tapi tenang, melalu artikel ini penulis berjanji akan membuat proses pembuatan apk / aab menjadi mudah dan menyenangkan. markimul, mari kita mulai.
Pertama, mari kita buat dulu keystore, kalau sudah punya pastikan teman teman ingat password serta alias nya.
membuat keystore bisa dengan mengguanakan perintah berikut
khusus unix (MacOs, Linux)
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
pengguna Windows
keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
Okey kalau command keytoolnya tidak terdeteksi, maka teman teman perlu menjalankan nya langsung dari directory Java Binary nya. silahkan ketik
flutter doctor -v
dan temukan dimana folder java nya terletak, pindah ke directory tersebut dan jalankan perintah keytool yang tadi.
Jika berhasil maka teman-teman diminta memasukan password serta data diri & company teman teman. untuk passowrd nya jangan sampai lupa ya. silahkan segera dicatat.
Setelah itu didalam directory android buatlah sebuah file dengan nama key.properties kemudian isi file tersebut sebagai berikut
storePassword=<password yang tadi teman teman masukan>
keyPassword=<password yang tadi teman teman masukan>
keyAlias=key
storeFile=<Lokasi file keystore , Misal /Users/<username>/key.jks>
okey selanjutnya di file android/app/build.gradle silahkan refactor dan sesuaikan menjadi seperti berikut
...
def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
android {
...
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
...
selanjutnya kita akan setup proguard untuk aplikasi kita, buatlah file proguard-rules.pro didalam direktori /android/app/ kemudian isi file tersebut seperti berikut
## Flutter wrapper
-keep class io.flutter.app.** { *; }
-keep class io.flutter.plugin.** { *; }
-keep class io.flutter.util.** { *; }
-keep class io.flutter.view.** { *; }
-keep class io.flutter.** { *; }
-keep class io.flutter.plugins.** { *; }
-dontwarn io.flutter.embedding.**
-ignorewarnings
-keep class * {
public private *;
}
kemudian cek manifest yang terdapat di android/app/src/main dan tambahkan permission yang applikasi teman teman butuhkan misal seperti internet, kamera, lokasi dll.
okey selanjut nya tinggal kita ekspor file apa yang kita butuhkan, biasanya playstore lebih menyukai format aab. untuk membuat file nya jalankan perintah berikut
flutter build appbundle
jika ingin membuat file apk maka gunakan perintah berikut
flutter build apk --split-per-abi
nah semua file tersebut bisa teman teman cek hasilnya di direktori /build/app/outputs/
Jika ingin mengupdate versi aplikasinya silahkan update version yang terdapat di file pubspec.yaml
Okey semoga berhasil, jika ada error atau kendala silahkan ditanyakan.
NB : subscribe channel saya dong :)
Top comments (2)
Saya dapat error seperti digambar. Itu masalahnya kenapa ya?
nsanuri@cacingkremi:/data/Flutter/Projects/test_drive_flutter/ebestpro_webview$ flutter build appbundle
πͺ Building with sound null safety πͺ
FAILURE: Build failed with an exception.
Where:
Build file '/data/Flutter/Projects/test_drive_flutter/ebestpro_webview/android/app/build.gradle' line: 34
What went wrong:
A problem occurred evaluating project ':app'.
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at help.gradle.org
BUILD FAILED in 1s
Running Gradle task 'bundleRelease'...
Running Gradle task 'bundleRelease'... Done 2,341ms
Gradle task bundleRelease failed with exit code 1