DEV Community

Ihwan
Ihwan

Posted on

Cara Membuat APK / AAB di Flutter

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
Enter fullscreen mode Exit fullscreen mode

pengguna Windows

keytool -genkey -v -keystore c:/Users/USER_NAME/key.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias key
Enter fullscreen mode Exit fullscreen mode

Okey kalau command keytoolnya tidak terdeteksi, maka teman teman perlu menjalankan nya langsung dari directory Java Binary nya. silahkan ketik

flutter doctor -v
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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'
        }
    }
}

...

Enter fullscreen mode Exit fullscreen mode

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 *;
}
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

jika ingin membuat file apk maka gunakan perintah berikut

flutter build apk --split-per-abi
Enter fullscreen mode Exit fullscreen mode

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)

Collapse
 
nsanuri profile image
nsanuri

Saya dapat error seperti digambar. Itu masalahnya kenapa ya?

Collapse
 
nsanuri profile image
nsanuri

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'.

    No signature of method: build_czgm82fhjz22pmdeclkqf1lhe.android() is applicable for argument types: (build_czgm82fhjz22pmdeclkqf1lhe$_run_closure2) values: [build_czgm82fhjz22pmdeclkqf1lhe$_run_closure2@104aab92]

  • 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