Press "Enter" to skip to content

Publikasi Aplikasi Android

Langkah terakhir yang perlu dilakukan setelah proses pengembangan aplikasi Android adalah melakukan publikasi aplikasi. Untuk melakukan publikasi kita perlu membuat berkas executable dalam format APK (Android Application Package). Berkas ini yang dapat developer didistribusikan melalui toko aplikasi seperti Google Play Store, F-Droid, dan toko aplikasi lainnya ke pengguna.

Ilustrasi Google Play Store

Berkas APK dapat dianalogikan seperti berkas MSI pada sistem operasi Windows atau berkas DEB di distribusi sistem operasi Linux Ubuntu.

Untuk membuat berkas APK dapat menggunakan dua buah pendekatan. Pendekatan pertama adalah menggunakan perintah melalui command line interface. Sedangkan pendekatan kedua yang akan kita bahas pada pembelajaran kali ini adalah dengan menggunakan wizard yang tentunya akan lebih mudah untuk digunakan.

Terdapat dua buah kunci yang dapat digunakan dalam membuat berkas APK, yaitu default keystore dan custom keystore. Default keystore adalah kunci yang dibentuk oleh Android Studio secara default. Publikasi aplikasi dengan menggunakan default keystore akan di tolak oleh toko aplikasi. Default keystore biasanya dipakai pada tahap pengembangan saja. Sementara custom keystore adalah kunci yang pengembang gunakan secara konsisten dalam publikasi aplikasi android. Kenapa dikatakan secara konsisten, karena proses pembaharuan aplikasi hanya dapat dilakukan bila memiliki kunci yang sama. Sehingga kunci yang dibuat harus disimpan dan dijaga dengan baik, agar dapat dipergunakan kembali oleh pihak yang benar.

Keystore adalah sebuah berkas biner yang berisi informasi tentang satu atau lebih private key. Private key adalah sebuah kunci yang digunakan untuk mencegah pemalsuan aplikasi. Secara garis besar konsep dari keystore adalah sebagai berikut ini:

  • Sistem Operasi Android mewajibkan semua aplikasi telah memiliki tanda tangan (signed) digital sebelum dapat terpasang ke dalam perangkat android.
  • Proses signing ini membutuhkan Public dan Private Key.
  • Proses signing ini berlangsung selama pembuatan APK dalam mode debug maupun released.
  • Sebuah sertifikat digital public key, atau identity certificate yang berisi informasi mengenai sertifikat itu sendiri dan metadata dari pemilik sertifikat tersebut akan terbentuk. Pemilik sertifikat ini adalah developer pengembang aplikasi.
  • Public key yang digunakan dalam proses signing di atas akan dilampirkan secara otomatis oleh Android Studio di dalam berkas APK.
  • Proses pembaharuan aplikasi hanya dapat dilakukan jika keystore yang diberikan sama dengan keystore sebelumnya yang digunakan pada saat pertama kali aplikasi diunggah ke toko aplikasi.

Kegunaan lain dari keystore adalah untuk integrasi terhadap layanan lain seperti layanan Google Maps yang menggunakan nilai hash dalam keystore atau layanan API Facebook yang menggunakan key hash base64 yang terkandung dalam keystore.

Mengingat pentingnya keystore dalam pengembangan aplikasi, khususnya dalam proses publikasi pembaharuan aplikasi, sehingga keystore harus benar-benar dijaga agar pengembangan aplikasi dapat tetap berlanjut.

Berikut adalah beberapa hal yang dapat diterapkan untuk mengamankan keystore :

  1. Pilih kata kunci (password) yang sulit ditebak. Kata kunci dapat terdiri dari kombinasi dari angka, alfabet dan simbol.
  2. Bedakan antara keystore password dan key password.
  3. Simpanlah keystore dalam tempat yang aman dan hanya bisa di akses oleh orang yang dipercaya. Jangan meletakkan keystore di dalam berkas proyek aplikasi.

Pada komputer dengan Sistem Operasi MacOS/Linux default keystore dapat ditemukan di ~/.android/debug.keystore. Sementara pada komputer dengan Sistem Operasi Windows dapat ditemukan di  C:\User\Username\.android\debug.keystore.

Contoh Publikasi Aplikasi Android

Contoh publikasi aplikasi android akan menggunakan aplikasi My Contact yang sudah kita kerjakan pada pembahasan Aplikasi Android dengan Web Services REST API Sederhana. Silakan buka kembali aplikasi My Contact yang akan kita jadikan sebagai obyek publikasi aplikasi android. Pada contoh ini akan dilakukan dua buah pendekatan dalam publikasi, pendekatan pertama dilakukan menggunakan default keystore dan yang kedua menggunakan custom keystore.

Publikasi Aplikasi dengan Default KeyStore

Untuk melakukan publikasi aplikasi android dengan menggunakan default keystore silakan akses menu Build → Build Bundles(s) / APK(s) → Build APK(s). Setelah itu Gradle akan membantu proses kompilasi dari project android kita dengan luaran berupa berkas APK. Proses akan membutuhkan waktu yang akan bervariasi tergantung dengan spesifikasi komputer, kompleksitas aplikasi, dan jumlah dependency yang digunakan. Setelah proses build selesai dilakukan akan muncul pemberitahuan pada pojok kanan bawah aplikasi Android Studio.

Pemberitahuan hasil Build APK

Untuk membuka lokasi berkas hasil proses build dapat dilakukan dengan mengklik tautan dengan label locate. Biasanya lokasi luaran akan mengikuti struktur lokasi nama-project/nama-module(app)/build/outputs/apk/debug. Jika proyek bernama MyContact, maka lokasinya adalah MyContact/app/build/outputs/apk/debug/apk-debug.apk.

Tampilan luaran hasil build APK

Berkas app-debug.apk dapat dipindahkan ke perangkat android untuk dilakukan proses instalasi. Jika proses instalasi berhasil seharusnya akan aplikasi dapat dijalankan.

Ilustrasi aplikasi MyContact
Luaran aplikasi MyContact

Publikasi Aplikasi dengan Custom KeyStore

Contoh berikutnya, kita akan melakukan publikasi aplikasi (berkas APK) dengan menggunakan custom keystore.  Custom keystore dibutuhkan untuk menjalankan proses signing agar aplikasi dapat didistribusikan melalui toko aplikasi. Untuk publikasi dengan custom keystore silakan akses menu Build → Generate Signed Bundle/APK. Pada dialog Generate Signed Bundle or APK pilih APK untuk membuat berkas signed APK, kemudian pilih Next untuk melanjutkan. Terdapat opsi lainnya yang disebut dengan Android App Bundle yang merupakan format yang mempunyai fitur dengan ukuran unduh lebih kecil, fitur on-demand aplikasi dan pembuatan modul asset tertentu saja.

Dialog Generate Signed Bundle or APK

Kemudian pada pada halaman berikutnya kira akan menentukan keystore yang digunakan. Karena kita baru akan membuat keystore baru maka pilih Create new… Jika sebelumnya sudah dibuat sebuah custom keystore yang ingin digunakan kembali maka pilih Choose existing…

Dialog Generate Signed Bundle or APK untuk memilih key store

Pada dialog New Key Store silakan tentukan beberapa isian yang diperlukan seperti pada gambar berikut ini kemudian pilih OK.

Dilaog menambahkan key store baru

Berikut adalah penjelasan dari masing-masing isian yang diperlukan dalam pembuatan key store baru.

Keystore pathLokasi penyimpanan keystore
Password      Merupakan password untuk keystore yang terdiri dari minimal 6 digit dan bedakan dengan keypassword di bawahnya
Alias          Nama alias dari keystore
Password      Password untuk alias (keypassword)
ValidityDurasi berlakunya keystore (dalam satuan tahun)
Firstname hingga Country CodeInformasi data dari pengembang aplikasi. Untuk isian Country Code (XX) menggunakan kode negara dalam satuan dua karakter.

Setelah itu maka dialog Generate Signed Bundle or APK akan terisi secara otomatis. Untuk melanjutkan silakan pilih Next.

Dialog Generate Signed Bundle or APK setelah diisi dengan data key store

Pada dialog berikutnya silakan pilih lokasi luaran berkas APK. Pada contoh ini digunakan lokasi default. Pada bagian Build Variants pilih release untuk untuk membuat berkas APK dalam status release. Bagian terakhir yang harus ditentukan adalah Signature Versions yang memiliki dua buah pilihan yaitu V1 dan V2. Kita menggunakan signature version V2. Signature Versions V2 memiliki keunggulan instalasi APK lebih cepat dan luaran aplikasi juga akan menjadi lebih aman terhadap pergantian (alteration) program dengan tujuan yang tidak baik.

Dialog memilih lokasi berkas APK

Tunggu proses gradle untuk signed/generate APK yang sedang berlangsung di status bar bagian bawah. Setelah proses build selesai dilakukan akan muncul pemberitahuan pada pojok kanan bawah aplikasi Android Studio.

Pemberitahuan hasil proses proses build

Silakan coba akses lokasi luaran berkas APK yang sebelumnya telah dipilih. Berkas app-release.apk dapat didistribusikan langsung atau melalui toko aplikasi.

Tampilan hasil proses build

Jika ingin memperbaharui aplikasi, jangan lupa mengubah versi yang ada di dalam build.gradle(Module:app). Misalnya kita ganti menjadi versi 2.

versionCode 2
versionName "2.0"