Android Kotlin #13: (Bonus) Membuat Signed APK dan Mempersiapkan Rilis ke Play Store
Halo lagi, calon publisher aplikasi Android!
Selamat! Kamu sudah berhasil membuat aplikasi wisata yang keren dengan fitur lengkap. Sekarang saatnya membagikan karya mu ke dunia (atau setidaknya ke teman-temanmu). Tapi sebelum itu, aplikasi perlu di-sign (ditandatangani) dan dikemas dalam format APK atau AAB. Anggap saja ini seperti memberikan stempel resmi bahwa aplikasi ini benar-benar buatanmu dan aman untuk dipasang.
Yang Akan Kita Pelajari
- Perbedaan antara APK dan AAB (Android App Bundle).
- Membuat keystore (kunci tanda tangan).
- Menghasilkan signed APK/AAB dari Android Studio.
- Menguji signed APK sebelum rilis.
- Langkah-langkah awal publikasi ke Google Play Store.
Langkah 1: Pahami APK vs AAB
APK (Android Package Kit) adalah format lama yang berisi semua kode dan sumber daya untuk semua perangkat. Ukurannya besar.
AAB (Android App Bundle) adalah format baru yang direkomendasikan Google. Dia hanya berisi base module, dan Google Play akan men-generate APK yang disesuaikan dengan perangkat pengguna (misal hanya untuk arsitektur ARM, atau hanya untuk resolusi tertentu). Hasilnya, ukuran unduhan lebih kecil .
Sekarang, Google Play mewajibkan AAB untuk aplikasi baru . Jadi kita akan buat AAB.
Langkah 2: Membuat Keystore (Kunci Tanda Tangan)
Keystore adalah file yang berisi kunci privat untuk menandatangani aplikasi. Ini sangat penting! Jangan sampai hilang, karena kalau hilang, kamu tidak bisa update aplikasi yang sudah terbit .
Ada dua cara membuat keystore: lewat menu di Android Studio atau lewat terminal. Kita pakai cara Android Studio.
- Di Android Studio, buka menu Build → Generate Signed Bundle / APK.
- Pilih Android App Bundle (atau APK kalau mau), klik Next.
- Klik Create new... untuk membuat keystore baru .
- Isi form:
- Key store path: pilih folder untuk menyimpan file
.jks. Simpan di tempat aman, misal di folder proyek tapi jangan di-commit ke git. - Password: buat password kuat, ingat atau catat.
- Key alias: nama alias untuk kunci (misal "wisataapp").
- Key password: bisa sama dengan keystore atau berbeda.
- Validity (years): minimal 25 tahun (masa berlaku).
- Certificate: isi First and Last Name (nama kamu), Organization (bisa kosong), City, State, Country Code (ID).
- Key store path: pilih folder untuk menyimpan file
- Klik OK. Keystore akan dibuat.
Langkah 3: Generate Signed AAB
Setelah keystore dibuat, kita lanjutkan generate:
- Di jendela yang sama, pilih module (biasanya "app").
- Isi Key store path, Key store password, Key alias, dan Key password dengan yang tadi dibuat.
- Centang Remember passwords kalau mau disimpan di Android Studio (opsional).
- Klik Next.
- Pilih Build Variants: release (pastikan tidak ada bug di mode release).
- Centang V1 (Jar Signature) dan V2 (Full APK Signature) (keduanya diperlukan).
- Klik Finish.
Android Studio akan mem-build dan menghasilkan file AAB di folder app/release/ (biasanya app-release.aab). Catat lokasinya.
Langkah 4: Menguji Signed AAB/APK
Sebelum upload ke Play Store, sebaiknya uji dulu di emulator atau HP sungguhan.
Menguji AAB:
Untuk menguji AAB, kita perlu tool bundletool atau install via Android Studio. Cara termudah: upload ke Play Console internal test, tapi agak ribet. Alternatif: gunakan Generate Signed APK untuk membuat APK dari AAB? Tidak, kita bisa konversi AAB ke APK menggunakan bundletool. Tapi untuk tes cepat, lebih baik buat signed APK saja (langkah yang sama, pilih APK di awal). Atau gunakan Build → Build APK (unsigned) untuk tes internal, tapi unsigned tidak bisa diinstall di HP biasa tanpa izin khusus.
Untuk tes final, kita install signed APK ke HP dengan cara copy file dan klik install. Pastikan HP mengizinkan instalasi dari sumber tidak dikenal (di pengaturan).
Langkah 5: Persiapan Google Play Store
Google Play Store adalah pasar aplikasi resmi Android. Untuk publikasi, kamu perlu akun developer (bayar sekali seumur hidup sekitar $25). Berikut langkah-langkahnya:
5.1. Buat Akun Developer Google Play
- Kunjungi Google Play Console.
- Login dengan akun Google (sebaiknya buat akun khusus developer).
- Setujui perjanjian developer dan bayar biaya pendaftaran ($25) menggunakan kartu kredit/debit internasional.
- Isi data diri sesuai formulir.
5.2. Siapkan Aset Aplikasi
Sebelum upload, siapkan beberapa hal ini:
- Nama aplikasi: misal "Wisata App".
- Deskripsi singkat (max 80 karakter) dan deskripsi lengkap.
- Ikon aplikasi: ukuran 512x512 px, format PNG.
- Screenshot: minimal 2 screenshot (bisa dari emulator atau HP), ukuran layar tertentu (biasanya 16:9).
- Feature graphic: banner 1024x500 px.
- Kategori: pilih misal "Travel & Local".
- Rating usia: isi kuesioner.
- Kebijakan privasi: jika aplikasi mengumpulkan data, perlu URL kebijakan privasi. Bisa buat di privacypolicies.com atau buat sendiri.
5.3. Buat Aplikasi Baru di Play Console
- Di Play Console, klik Create app.
- Isi nama aplikasi, pilih bahasa default, pilih aplikasi berbayar/gratis, dan setujui deklarasi.
- Klik Create app.
5.4. Isi Informasi Store Listing
Isi semua yang diperlukan: deskripsi, screenshot, icon, dll. Semakin lengkap, semakin baik.
5.5. Upload AAB ke Production (atau Internal Test)
Untuk pertama kali, lebih aman upload ke Internal testing track dulu, tes sendiri, lalu naik ke Production.
- Di menu kiri, pilih Testing → Internal testing.
- Buat tester list (bisa tambahkan email sendiri).
- Di tab Releases, klik Create new release.
- Upload file AAB yang sudah dibuat.
- Isi release notes (catatan rilis).
- Simpan dan tinjau. Jika semua ok, klik Start rollout to Internal testing.
Setelah itu, tester (termasuk kamu) bisa menginstall melalui link opt-in.
5.6. Naikkan ke Production
Setelah testing internal lancar, kamu bisa naikkan ke Production. Di menu Production, buat release baru dan pilih bundle yang sudah diupload di internal (bisa dipilih). Isi catatan rilis, lalu mulai rollout bertahap atau langsung 100%.
Langkah 6: Menyiapkan Versi dan Penomoran
Di build.gradle (Module: app), ada dua hal penting untuk rilis:
android {
defaultConfig {
versionCode 1
versionName "1.0"
}
}
- versionCode: angka integer, harus naik setiap update (misal 1,2,3...).
- versionName: string yang dilihat user (misal "1.0", "1.5", dll).
Sebelum generate AAB, pastikan versionCode sudah sesuai (misal untuk rilis pertama = 1).
Bonus: Menandatangani Secara Otomatis (Signing Config)
Agar tidak perlu input keystore setiap kali build release, kita bisa konfigurasi di build.gradle:
android {
signingConfigs {
release {
storeFile file("wisataapp-keystore.jks")
storePassword "password"
keyAlias "wisataapp"
keyPassword "password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
⚠️ Tapi hati-hati: jangan commit password ke git! Simpan di file terpisah atau gunakan environment variable.
Selamat! Aplikasi Siap Dirilis
Sekarang kamu tahu cara membuat signed AAB dan langkah-langkah publikasi ke Play Store. Ini adalah pencapaian besar! Tidak semua orang sampai ke tahap ini.
Ingat, proses publikasi pertama mungkin terasa ribet, tapi setelah terbiasa, akan mudah. Jangan lupa untuk terus update aplikasi dengan fitur baru dan perbaikan bug.
Rangkuman
- Keystore: kunci privat untuk menandatangani aplikasi, simpan baik-baik!
- AAB adalah format rilis modern yang direkomendasikan Google.
- Generate signed AAB via Build → Generate Signed Bundle / APK.
- Sebelum rilis, uji signed APK di HP nyata.
- Di Play Console, buat akun developer, siapkan aset, dan upload AAB.
- Gunakan internal test dulu untuk memastikan tidak ada masalah.
- Perhatikan versionCode yang harus naik setiap update.
Penutup Seri
Ini adalah akhir dari seri Android Kotlin dari dasar hingga rilis. Kamu sudah belajar banyak: instalasi, UI, RecyclerView, API, ViewModel, LiveData, autentikasi, upload gambar, dan sekarang rilis. Luar biasa! 👏
Terima kasih sudah mengikuti seri ini. Teruslah belajar dan berkarya. Jangan ragu untuk mencoba hal baru, seperti Jetpack Compose, Firebase, atau backend kamu sendiri.
Ditulis oleh Kakak programmer yang dulu juga deg-degan pas upload pertama. Kalau ada pertanyaan, tulis di komentar ya!