Android mengharuskan semua APK ditandatangani secara digital dengan sertifikat sebelum diinstal di perangkat atau diupdate. Saat merilis menggunakan Android App Bundle, Anda perlu menandatangani app bundle dengan kunci upload sebelum menguploadnya ke Konsol Play, dan Penandatanganan Aplikasi Play akan menangani sisanya. Untuk aplikasi yang didistribusikan menggunakan APK di Play Store atau di app store lain, Anda harus menandatangani APK secara manual untuk diupload.
Halaman ini akan memandu Anda melalui beberapa konsep penting terkait penandatanganan dan keamanan aplikasi, cara menandatangani aplikasi untuk dirilis ke Google Play menggunakan Android Studio, dan cara mengonfigurasi Penandatanganan Aplikasi Play.
Berikut adalah ringkasan tingkat tinggi tentang langkah-langkah yang mungkin perlu Anda lakukan untuk menandatangani dan memublikasikan aplikasi baru ke Google Play:
- Membuat keystore dan kunci upload
- Menandatangani aplikasi dengan kunci upload
- Mengonfigurasi Penandatanganan Aplikasi Play
- Mengupload aplikasi Anda ke Google Play
- Menyiapkan & meluncurkan rilis aplikasi Anda
Jika aplikasi sudah dipublikasikan ke Google Play Store dengan kunci penandatanganan aplikasi yang sudah ada, atau Anda ingin memilih kunci penandatanganan aplikasi untuk aplikasi baru, bukan meminta Google untuk membuatnya, ikuti langkah-langkah berikut:
- Tandatangani aplikasi dengan kunci penandatanganan aplikasi.
- Upload kunci penandatanganan aplikasi ke Penandatanganan Aplikasi Play.
- (Direkomendasikan) Buat dan daftarkan sertifikat upload untuk update aplikasi Anda selanjutnya
- Mengupload aplikasi Anda ke Google Play
- Menyiapkan & meluncurkan rilis aplikasi Anda
Halaman ini juga menjelaskan cara mengelola kunci Anda sendiri untuk mengupload aplikasi
ke app store lain. Jika Anda tidak menggunakan Android Studio atau lebih
memilih untuk menandatangani aplikasi dari command line,
pelajari cara menggunakan apksigner
.
Penandatanganan Aplikasi Play
Dengan Penandatanganan Aplikasi Play, Google akan mengelola dan melindungi kunci penandatanganan aplikasi Anda serta menggunakannya untuk menandatangani APK yang akan didistribusikan. Selain itu, karena app bundle menangguhkan proses build dan penandatanganan APK ke Google Play Store, Anda perlu mengonfigurasi Penandatanganan Aplikasi Play sebelum mengupload app bundle. Dengan begitu, Anda akan mendapatkan manfaat dari hal-hal berikut:
- Menggunakan Android App Bundle dan mendukung mode pengiriman lanjutan Google Play. Android App Bundle membuat ukuran aplikasi Anda menjadi jauh lebih kecil, menyederhanakan rilis, serta memungkinkan penggunaan modul fitur dan menawarkan pengalaman instan.
- Meningkatkan keamanan kunci penandatanganan dan memungkinkan Anda menggunakan kunci upload yang terpisah untuk menandatangani app bundle yang diupload ke Google Play.
Dengan upgrade kunci, Anda dapat mengubah kunci penandatanganan aplikasi jika kunci yang ada disusupi atau jika Anda perlu bermigrasi ke kunci yang lebih kuat secara kriptografis
Penandatanganan Aplikasi Play menggunakan dua kunci: kunci penandatanganan aplikasi dan kunci upload, yang dijelaskan secara lebih detail di bagian Kunci dan keystore. Anda dapat menyimpan kunci upload dan menggunakannya untuk menandatangani aplikasi agar dapat diupload ke Google Play Store. Google menggunakan sertifikat upload untuk memverifikasi identitas Anda dan menandatangani APK dengan kunci penandatanganan aplikasi untuk distribusi seperti ditunjukkan dalam gambar 1. Dengan menggunakan kunci upload terpisah, Anda dapat meminta agar kunci upload direset jika kunci Anda hilang atau disusupi.
Sebagai perbandingan, untuk aplikasi yang belum ikut serta dalam Penandatanganan Aplikasi Play, jika kehilangan kunci penandatanganan aplikasi, Anda tidak akan dapat mengupdate aplikasi.
Kunci Anda disimpan di infrastruktur yang sama dengan yang digunakan Google untuk menyimpan kuncinya sendiri, yang dilindungi oleh Key Management Service Google. Anda dapat mempelajari infrastruktur teknis Google selengkapnya dengan membaca Laporan Resmi Keamanan Google Cloud.
Saat menggunakan Penandatanganan Aplikasi Play, jika kehilangan kunci upload, atau jika disusupi, Anda dapat meminta reset kunci upload di Konsol Play. Karena kunci penandatanganan aplikasi dilindungi oleh Google, Anda dapat terus mengupload versi aplikasi baru sebagai update untuk aplikasi yang asli, meskipun Anda mengubah kunci upload. Untuk mempelajari lebih lanjut, baca Mereset kunci upload pribadi yang hilang atau disusupi.
Bagian berikutnya menjelaskan beberapa istilah dan konsep penting terkait penandatanganan dan keamanan aplikasi. Jika Anda ingin melewatinya dan mempelajari cara mempersiapkan aplikasi untuk diupload ke Google Play Store, buka Menandatangani aplikasi untuk rilis.
Keystore, kunci, dan sertifikat
Java Keystore (.jks atau .keystore) adalah file biner yang berfungsi sebagai repositori sertifikat dan kunci pribadi.
Public key certificate (file .der
atau .pem
), juga disebut sebagai sertifikat digital
atau sertifikat identitas, berisi kunci publik pasangan kunci
umum/pribadi, serta beberapa metadata lain yang mengidentifikasi pemilik
(misalnya, nama dan lokasi) yang memiliki kunci pribadi terkait.
Berikut berbagai jenis kunci yang harus Anda pahami:
- Kunci penandatanganan aplikasi: Kunci yang digunakan untuk menandatangani APK yang diinstal di perangkat pengguna. Sebagai bagian dari model update aman Android, kunci penandatanganan tidak pernah berubah selama masa aktif aplikasi. Kunci penandatanganan aplikasi bersifat pribadi dan harus dirahasiakan. Namun, Anda dapat membagikan sertifikat yang dihasilkan menggunakan kunci penandatanganan aplikasi Anda.
Kunci upload: Kunci yang digunakan untuk menandatangani app bundle atau APK sebelum diupload untuk penandatanganan aplikasi dengan Google Play. Anda harus merahasiakan kunci upload ini. Namun, Anda dapat membagikan sertifikat yang dihasilkan menggunakan kunci upload. Anda dapat membuat kunci upload dengan salah satu cara berikut:
- Jika Anda ikut serta dan meminta Google membuat kunci penandatanganan aplikasi untuk Anda, kunci yang digunakan untuk menandatangani aplikasi untuk rilis akan ditetapkan sebagai kunci upload.
- Jika Anda memberikan kunci penandatanganan aplikasi ke Google saat memilih untuk ikut serta di aplikasi baru atau yang sudah ada, Anda memiliki opsi untuk membuat kunci upload baru selama atau setelah memilih untuk meningkatkan keamanan.
- Jika tidak membuat kunci upload baru, Anda tetap menggunakan kunci penandatanganan aplikasi sebagai kunci upload untuk menandatangani setiap rilisnya.
Tips: Agar kunci tetap aman, sebaiknya pastikan untuk membedakan kunci penandatanganan aplikasi dan kunci upload.
Bekerja sama dengan penyedia API
Anda dapat mendownload sertifikat untuk kunci penandatanganan aplikasi dan kunci upload dari halaman Rilis > Penyiapan > Penandatanganan aplikasi di Konsol Play. Sertifikat ini digunakan untuk mendaftarkan kunci publik dengan penyedia API; kunci tersebut ditujukan untuk dibagikan karena tidak berisi kunci pribadi.
Sidik jari sertifikat adalah representasi singkat dan unik dari
sertifikat yang sering diminta oleh penyedia API bersama nama paket untuk
mendaftarkan aplikasi agar dapat menggunakan layanan mereka. Sidik jari MD5, SHA-1, dan SHA-256
dari sertifikat upload dan sertifikat penandatanganan aplikasi dapat ditemukan di halaman
penandatanganan aplikasi Konsol Play. Sidik jari lainnya juga dapat dikomputasi dengan mendownload
sertifikat asli (.der
) dari halaman yang sama.
Menandatangani build debug
Saat menjalankan atau men-debug project dari IDE, Android Studio akan otomatis menandatangani aplikasi Anda dengan sertifikat debug yang dihasilkan oleh Android SDK Tools. Saat pertama menjalankan atau men-debug project di Android Studio,
IDE akan otomatis membuat keystore dan sertifikat debug di
$HOME/.android/debug.keystore
, lalu menyetel sandi untuk keystore dan kunci tersebut.
Sertifikat debug dibuat oleh alat build dan tidak aman secara desain, dan oleh karena itu, sebagian besar app store (termasuk Google Play Store) tidak menerima aplikasi yang ditandatangani dengan sertifikat debug untuk dipublikasikan.
Android Studio otomatis menyimpan informasi penandatanganan debug dalam konfigurasi penandatanganan, sehingga Anda tidak perlu memasukkannya kembali setiap kali melakukan proses debug. Konfigurasi penandatanganan adalah objek yang berisi semua informasi yang diperlukan untuk menandatangani aplikasi, termasuk lokasi keystore, sandi keystore, nama kunci, dan sandi kunci.
Untuk informasi selengkapnya tentang cara membangun dan menjalankan aplikasi untuk proses debug, lihat Membangun dan Menjalankan Aplikasi Anda.
Masa berakhir sertifikat debug
Sertifikat yang ditandatangani sendiri dan digunakan untuk menandatangani aplikasi Anda untuk proses debug memiliki masa berlaku selama 30 hari sejak tanggal pembuatannya. Ketika masa berlaku sertifikat habis, Anda akan mendapatkan error build.
Untuk memperbaiki masalah ini, cukup hapus file debug.keystore
yang disimpan
di salah satu lokasi berikut:
~/.android/
pada OS X dan LinuxC:\Documents and Settings\user\.android\
pada Windows XPC:\Users\user\.android\
pada Windows Vista dan Windows 7, 8, dan 10
Pada kali berikutnya Anda membangun dan menjalankan versi debug aplikasi, Android Studio akan membuat kembali keystore dan kunci debug baru.
Menandatangani aplikasi Anda untuk rilis ke Google Play
Jika sudah siap untuk memublikasikan aplikasi, Anda harus menandatangani dan menguploadnya ke app store, misalnya Google Play. Saat memublikasikan aplikasi ke Google Play untuk pertama kalinya, Anda juga harus mengonfigurasi Penandatanganan Aplikasi Play. Penandatanganan Aplikasi Play bersifat opsional untuk aplikasi yang dibuat sebelum Agustus 2021. Bagian ini menunjukkan cara menandatangani aplikasi dengan benar untuk rilis dan mengonfigurasi Penandatanganan Aplikasi Play.
Membuat keystore dan kunci upload
Jika belum memiliki kunci upload, yang berguna saat mengonfigurasi Penandatanganan Aplikasi Play, Anda dapat membuatnya menggunakan Android Studio dengan cara berikut:
- Di panel menu, Klik Build > Generate Signed Bundle/APK.
- Pada dialog Generate Signed Bundle or APK, pilih Android App Bundle atau APK, lalu klik Next.
- Di bawah kolom untuk Key store path, klik Create new.
Di jendela New Key Store, berikan informasi berikut untuk keystore dan kunci Anda, seperti ditunjukkan dalam gambar 2.
Keystore
- Key store path: Pilih lokasi untuk membuat keystore Anda.
Selain itu, nama file harus ditambahkan ke akhir jalur lokasi dengan
ekstensi
.jks
. - Password: Buat dan konfirmasi sandi yang aman untuk keystore.
- Key store path: Pilih lokasi untuk membuat keystore Anda.
Selain itu, nama file harus ditambahkan ke akhir jalur lokasi dengan
ekstensi
Key
- Alias: Masukkan nama identifikasi untuk kunci Anda.
- Password: Buat dan konfirmasikan sandi yang aman untuk kunci. Sandi ini harus sama dengan sandi keystore Anda. (Lihat masalah umum untuk informasi selengkapnya)
- Validity (years): Tentukan jangka waktu validitas kunci Anda dalam tahun. Kunci harus valid setidaknya selama 25 tahun sehingga Anda dapat menandatangani update aplikasi dengan kunci yang sama selama masa penggunaannya.
- Certificate: Masukkan beberapa informasi tentang diri Anda untuk sertifikat. Informasi ini tidak ditampilkan dalam aplikasi, tetapi akan disertakan dalam sertifikat sebagai bagian dari APK.
Setelah melengkapi formulir, klik OK.
Jika ingin membangun dan menandatangani aplikasi dengan kunci upload, lanjutkan ke bagian tentang cara Menandatangani aplikasi Anda dengan kunci upload. Jika hanya ingin membuat kunci dan keystore, klik Cancel.
Menandatangani aplikasi dengan kunci Anda
Jika sudah memiliki kunci upload, gunakan untuk menandatangani aplikasi. Jika aplikasi Anda telah ditandatangani dan dipublikasikan ke Google Play Store dengan kunci penandatanganan aplikasi yang ada, gunakan kunci tersebut untuk menandatangani aplikasi. Kemudian, Anda dapat membuat dan mendaftarkan kunci upload terpisah dengan Google Play untuk menandatangani dan mengupload update berikutnya bagi aplikasi Anda.
Untuk menandatangani aplikasi menggunakan Android Studio, ikuti langkah-langkah berikut:
- Jika dialog Generate Signed Bundle or APK belum terbuka, klik Build > Generate Signed Bundle/APK.
- Pada dialog Generate Signed Bundle atau APK, pilih Android App Bundle atau APK, lalu klik Next.
- Pilih modul dari drop-down.
Tentukan jalur menuju keystore, alias untuk kunci Anda, lalu masukkan sandi untuk keduanya. Jika Anda belum menyiapkan kunci dan keystore upload, Buat keystore dan kunci upload terlebih dahulu, lalu kembali untuk menyelesaikan langkah ini.
Klik Next.
Di jendela berikutnya (ditunjukkan dalam gambar 4), pilih folder tujuan untuk aplikasi Anda yang ditandatangani, pilih jenis build, lalu pilih varian produk jika perlu.
Jika akan membangun dan menandatangani APK, Anda harus memilih Signature Versions yang akan didukung oleh aplikasi Anda. Untuk mempelajari lebih lanjut, baca tentang skema penandatanganan aplikasi
Klik Create.
Setelah Android Studio selesai membangun aplikasi yang ditandatangani, Anda dapat menemukan atau menganalisis aplikasi dengan mengklik opsi yang sesuai dalam notifikasi pop-up. seperti yang ditunjukkan pada gambar 5.
Sekarang Anda siap untuk mengikutsertakan aplikasi ke Penandatanganan Aplikasi Play dan mengupload aplikasi untuk dirilis. Jika baru pernah melakukan proses publikasi aplikasi, Anda mungkin perlu membaca Ringkasan peluncuran. Jika sudah pernah melakukannya, lanjutkan ke halaman tentang cara Mengupload aplikasi Anda ke Konsol Play.
Menggunakan Penandatanganan Aplikasi Play
Seperti yang dijelaskan sebelumnya di halaman ini, mengonfigurasi Penandatanganan Aplikasi Play diperlukan untuk menandatangani aplikasi Anda agar didistribusikan melalui Google Play (kecuali untuk aplikasi yang dibuat sebelum Agustus 2021, yang dapat terus mendistribusikan APK yang ditandatangani sendiri). Langkah-langkah yang perlu dilakukan bergantung pada apakah aplikasi Anda belum pernah dipublikasikan ke Google Play, atau sudah ditandatangani dan dipublikasikan sebelum Agustus 2021 menggunakan kunci penandatanganan aplikasi yang sudah ada.
Mengonfigurasi aplikasi baru
Untuk mengonfigurasi penandatanganan aplikasi yang belum dipublikasikan ke Google Play, lakukan langkah berikut:
- Jika belum melakukannya, buat kunci upload, lalu tanda tangani aplikasi Anda dengan kunci upload tersebut.
- Login ke Konsol Play.
- Ikuti langkah-langkah mempersiapkan & meluncurkan rilis untuk membuat rilis baru.
- Setelah memilih jalur rilis, konfigurasi penandatanganan aplikasi di bagian Penandatanganan
aplikasi sebagai berikut:
- Agar Google Play membuat kunci penandatanganan aplikasi untuk Anda dan menggunakannya untuk menandatangani aplikasi, Anda tidak perlu melakukan apa pun. Kunci yang digunakan untuk menandatangani rilis pertama Anda akan menjadi kunci upload, dan Anda harus menggunakannya untuk menandatangani rilis selanjutnya.
- Untuk menggunakan kunci yang sama dengan aplikasi lain di akun developer Anda, pilih Change app signing key > Use the same key as another app in this account, pilih aplikasi, lalu klik Continue.
- Untuk memberikan kunci penandatanganan sendiri agar digunakan oleh Google saat menandatangani aplikasi Anda, pilih Change app signing key dan pilih salah satu opsi Export and upload yang memungkinkan Anda mengupload kunci pribadi dan sertifikat publiknya dengan aman.
Di bagian yang disebut App Bundle, klik Browse files untuk menemukan dan mengupload aplikasi yang telah ditandatangani menggunakan kunci upload. Untuk informasi selengkapnya tentang merilis aplikasi, baca menyiapkan dan meluncurkan rilis Anda. Saat merilis aplikasi setelah mengonfigurasi Penandatanganan Aplikasi Play, Google Play akan membuat (kecuali Anda mengupload kunci yang sudah ada) dan mengelola kunci penandatanganan aplikasi untuk Anda. Cukup tanda tangani update berikutnya untuk aplikasi Anda menggunakan kunci upload aplikasi sebelum menguploadnya ke Google Play.
Jika perlu membuat kunci upload baru untuk aplikasi Anda, buka bagian tentang cara Mereset kunci upload pribadi yang hilang atau disusupi.
Mengikutsertakan aplikasi yang sudah ada
Jika Anda mengupdate aplikasi yang telah dipublikasikan ke Google Play menggunakan kunci penandatanganan aplikasi yang sudah ada, Anda dapat ikut serta dalam Penandatanganan Aplikasi Play sebagai berikut:
- Login ke Konsol Play, lalu buka aplikasi Anda.
- Di menu kiri, klik Rilis > Penyiapan > Penandatanganan aplikasi.
- Jika ada, tinjau Persyaratan Layanan, lalu pilih Setuju.
- Pilih salah satu opsi yang paling mendeskripsikan kunci penandatanganan yang ingin Anda upload ke Google Play, lalu ikuti petunjuk yang ditampilkan. Misalnya, jika Anda menggunakan Java Keystore untuk kunci penandatanganan, pilih Upload a new signing key from Java Keystore, lalu ikuti petunjuk untuk mendownload dan menjalankan alat PEPK, dan upload file yang dihasilkan dengan kunci terenkripsi Anda.
- Klik Enroll.
Anda akan melihat halaman yang berisi detail tentang sertifikat penandatanganan dan sertifikat upload aplikasi Anda. Sekarang, Google Play akan menandatangani aplikasi Anda dengan kunci yang sudah ada saat menerapkannya ke pengguna. Namun, salah satu manfaat terpenting bagi Penandatanganan Aplikasi Play adalah kemampuan untuk memisahkan kunci yang Anda gunakan untuk menandatangani artefak yang diupload ke Google Play dari kunci yang digunakan Google Play untuk menandatangani aplikasi untuk didistribusikan kepada pengguna. Jadi, pertimbangkan untuk mengikuti langkah-langkah di bagian berikutnya untuk membuat dan mendaftarkan kunci upload yang terpisah.
Membuat dan mendaftarkan sertifikat upload
Saat Anda memublikasikan aplikasi yang tidak ditandatangani oleh kunci upload, Konsol Google Play memberikan opsi untuk mendaftarkannya guna mendapatkan update aplikasi berikutnya. Meskipun ini adalah langkah opsional, sebaiknya publikasikan aplikasi Anda dengan kunci yang terpisah dari kunci yang digunakan Google Play untuk mendistribusikan aplikasi ke pengguna. Dengan demikian, Google akan menyimpan kunci penandatanganan Anda dengan aman, dan Anda memiliki opsi untuk mereset kunci upload pribadi yang hilang atau disusupi. Bagian ini menjelaskan cara membuat kunci upload, membuat sertifikat upload darinya, dan mendaftarkan sertifikat tersebut dengan Google Play untuk update aplikasi Anda selanjutnya.
Bagian berikut ini menjelaskan situasi yang memungkinkan Anda melihat opsi untuk mendaftarkan sertifikat upload di Konsol Play:
- Saat Anda memublikasikan aplikasi baru yang ditandatangani dengan kunci penandatanganan dan memilih untuk ikut serta dalam Penandatanganan Aplikasi Play.
- Saat Anda akan memublikasikan aplikasi yang sudah ada yang telah diikutsertakan dalam Penandatanganan Aplikasi Play, tetapi aplikasi tersebut ditandatangani menggunakan kunci penandatanganannya.
Jika Anda tidak memublikasikan update ke aplikasi yang sudah ada yang telah diikutsertakan dalam penandatanganan aplikasi oleh Google Play, dan ingin mendaftarkan sertifikat upload, lakukan langkah-langkah di bawah ini dan lanjutkan ke bagian tentang cara mereset kunci upload yang hilang atau disusupi.
Jika belum melakukannya, buat keystore dan kunci upload.
Setelah membuat keystore dan kunci upload, Anda perlu membuat sertifikat publik
dari kunci upload menggunakan
keytool
,
dengan perintah berikut:
$ keytool -export -rfc -keystore your-upload-keystore.jks -alias upload-alias -file output_upload_certificate.pem
Setelah Anda memiliki sertifikat upload, daftarkan sertifikat ke Google saat diminta di Konsol Play atau saat mereset kunci upload.
Mengupgrade kunci penandatanganan aplikasi
Dalam situasi tertentu, Anda mungkin ingin mengubah kunci penandatanganan aplikasi Anda. Misalnya, karena Anda ingin kunci yang lebih kuat secara kriptografis, atau kunci penandatanganan telah disusupi. Namun, karena pengguna hanya dapat mengupdate aplikasi jika update ditandatangani dengan kunci penandatanganan yang sama, sulit untuk mengubah kunci tersebut untuk aplikasi yang sudah dipublikasikan.
Jika memublikasikan aplikasi ke Google Play, Anda dapat mengupgrade kunci penandatanganan untuk aplikasi yang sudah dipublikasikan melalui Konsol Play; kunci yang baru akan digunakan untuk menandatangani penginstalan dan update aplikasi di Android 13 dan yang lebih baru, sementara yang lama kunci penandatanganan aplikasi digunakan untuk menandatangani update bagi pengguna pada versi Android sebelumnya.
Untuk mempelajari lebih lanjut, baca Mengupgrade kunci penandatanganan aplikasi.
Mereset kunci upload pribadi yang hilang atau disusupi
Jika kunci upload pribadi hilang atau kunci pribadi Anda disusupi, Anda dapat membuat yang baru dan meminta agar kunci upload direset di konsol Play.
Mengonfigurasi proses build agar otomatis menandatangani aplikasi
Di Android Studio, Anda dapat mengonfigurasi project agar otomatis menandatangani versi rilis aplikasi saat proses build dengan membuat konfigurasi penandatanganan dan menetapkannya ke jenis build rilis Anda. Konfigurasi penandatanganan terdiri atas lokasi keystore, sandi keystore, alias kunci, dan sandi kunci. Untuk membuat konfigurasi penandatanganan dan menetapkannya ke jenis build rilis menggunakan Android Studio, lakukan langkah-langkah berikut:
- Di jendela Project, klik kanan aplikasi Anda, lalu klik Open Module Settings.
- Di jendela Project Structure, pada Modules di panel kiri, klik modul yang ingin ditandatangani.
- Klik tab Signing, lalu klik Add .
-
Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu konfigurasi), lalu masukkan informasi yang diperlukan.
- Klik tab Build Types.
- Klik build release.
-
Pada Signing Config, pilih konfigurasi penandatanganan yang baru saja Anda buat.
- Klik OK.
Sekarang, setiap kali Anda membangun jenis build rilis dengan memilih opsi pada
Build > Build Bundle(s) / APK(s) di Android Studio,
IDE akan otomatis menandatangani aplikasi, menggunakan konfigurasi penandatanganan yang
Anda tentukan. Anda dapat menemukan APK atau app bundle yang sudah
ditandatangani dalam direktori build/outputs/
di dalam direktori
project untuk modul yang Anda buat.
Saat membuat konfigurasi penandatanganan, informasi penandatanganan Anda akan disertakan dalam teks biasa pada file build Gradle. Jika Anda bekerja dalam tim atau berbagi kode secara publik, Anda harus menjaga keamanan informasi penandatanganan dengan menghapusnya dari file build dan menyimpannya secara terpisah. Anda dapat membaca lebih lanjut cara menghapus informasi penandatanganan dari file build dalam Menghapus Informasi Penandatanganan dari File Build Anda. Untuk informasi selengkapnya tentang cara menjaga keamanan informasi penandatanganan Anda, lihat Menjaga kunci Anda tetap aman, di bawah.
Menandatangani setiap ragam produk secara berbeda
Jika aplikasi menggunakan ragam produk dan Anda ingin menandatangani setiap ragamnya secara berbeda, Anda dapat membuat konfigurasi penandatanganan tambahan dan menetapkannya menurut ragam:
- Di jendela Project, klik kanan aplikasi Anda, lalu klik Open Module Settings.
- Di jendela Project Structure, pada Modules di panel kiri, klik modul yang ingin ditandatangani.
- Klik tab Signing, lalu klik Add .
-
Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu konfigurasi), lalu masukkan informasi yang diperlukan.
- Ulangi langkah 3 dan 4 bila perlu hingga Anda selesai membuat semua konfigurasi penandatanganan.
- Klik tab Flavors.
- Klik ragam yang ingin dikonfigurasi, lalu pilih konfigurasi penandatanganan yang sesuai dari menu drop-down Signing Config.
Ulangi untuk mengonfigurasi ragam produk lainnya.
- Klik OK.
Anda juga dapat menetapkan setelan penandatanganan dalam file konfigurasi Gradle. Untuk informasi selengkapnya, lihat Mengonfigurasi Setelan Penandatanganan.
Menjalankan laporan penandatanganan
Untuk mendapatkan informasi penandatanganan setiap varian aplikasi, jalankan tugas
signingReport
Gradle di Android Studio:
- Pilih View > Tool Windows > Gradle untuk membuka jendela alat Gradle
- Pilih YourApp > Tasks > Android > signingReport untuk menjalankan laporan
Mengelola kunci penandatanganan Anda sendiri
Jika memilih untuk tidak ikut serta dalam Penandatanganan Aplikasi Play (hanya untuk aplikasi yang dibuat sebelum Agustus 2021), Anda dapat mengelola kunci penandatanganan aplikasi dan keystore sendiri. Perlu diingat bahwa Anda bertanggung jawab untuk mengamankan kunci dan keystore tersebut. Selain itu, aplikasi tidak akan dapat mendukung Android App Bundle, Play Feature Delivery, dan Play Asset Delivery.
Jika sudah siap membuat kunci dan keystore Anda sendiri, pastikan terlebih dahulu memilih sandi yang kuat untuk keystore serta sandi kuat yang terpisah untuk setiap kunci pribadi yang disimpan di keystore. Anda harus menyimpan keystore di tempat yang aman dan terlindung. Jika Anda kehilangan akses ke kunci penandatanganan aplikasi atau kunci telah disusupi, Google tidak dapat memperoleh kunci penandatanganan aplikasi untuk Anda, dan Anda tidak akan dapat merilis versi baru aplikasi kepada pengguna sebagai update untuk aplikasi asli. Untuk informasi selengkapnya, lihat Mengamankan kunci Anda, di bawah ini.
Jika Anda mengelola kunci penandatanganan aplikasi dan keystore sendiri, saat menandatangani APK, Anda akan menandatanganinya secara lokal menggunakan kunci penandatanganan aplikasi dan mengupload APK yang ditandatangani secara langsung ke Google Play Store untuk didistribusikan seperti yang ditunjukkan pada gambar 12.
Saat menggunakan Penandatanganan Aplikasi Play, Google akan mengamankan kunci penandatanganan Anda, dan memastikan aplikasi ditandatangani dengan benar serta dapat menerima update sepanjang masa penggunaannya. Namun, jika Anda memutuskan untuk mengelola kunci penandatanganan aplikasi sendiri, ada beberapa pertimbangan yang harus diingat.
Pertimbangan penandatanganan
Anda harus menandatangani aplikasi dengan sertifikat yang sama selama masa penggunaan yang diharapkan. Ada sejumlah alasan mengapa Anda harus melakukannya:
- Upgrade aplikasi: Saat menginstal update untuk suatu aplikasi, sistem akan membandingkan sertifikat pada versi baru dengan yang ada pada versi saat ini. Sistem akan mengizinkan update jika sertifikatnya cocok. Jika menandatangani versi baru dengan sertifikat yang berbeda, Anda harus menetapkan nama paket yang berbeda ke aplikasi; dalam hal ini, pengguna menginstal versi baru sebagai aplikasi yang benar-benar baru.
- Modularitas aplikasi: Android mengizinkan APK yang ditandatangani oleh sertifikat yang sama untuk berjalan dalam proses yang sama jika aplikasi memintanya, sehingga sistem memperlakukannya sebagai satu aplikasi. Dengan demikian, Anda dapat menerapkan aplikasi dalam modul, dan pengguna dapat mengupdate setiap modul secara independen.
- Berbagi kode/data melalui izin: Android menyediakan penerapan izin berbasis tanda tangan, sehingga aplikasi dapat menunjukkan fungsionalitasnya ke aplikasi lain yang ditandatangani dengan sertifikat tertentu. Dengan menandatangani beberapa APK menggunakan sertifikat yang sama dan pemeriksaan izin berbasis tanda tangan, aplikasi Anda dapat membagikan kode dan data dengan cara yang aman.
Jika Anda berencana mendukung upgrade aplikasi, pastikan kunci penandatanganan aplikasi memiliki periode validitas yang melebihi masa aktif yang diharapkan untuk aplikasi tersebut. Periode validitas yang direkomendasikan adalah 25 tahun atau lebih. Apabila periode validitas kunci Anda berakhir, pengguna tidak lagi dapat mengupgrade versi baru aplikasi Anda dengan lancar.
Jika berencana untuk memublikasikan aplikasi Anda di Google Play, kunci yang digunakan untuk menandatangani aplikasi harus periode validitas yang berakhir setelah 22 Oktober 2033. Google Play memberlakukan persyaratan ini untuk memastikan pengguna dapat mengupgrade aplikasi dengan lancar saat versi baru tersedia.
Menyimpan kunci Anda dengan aman
Jika Anda memilih untuk mengelola dan mengamankan kunci penandatanganan aplikasi dan keystore sendiri (bukan memilih untuk ikut serta dalam Penandatanganan Aplikasi Play), mengamankan kunci penandatanganan aplikasi sangat penting bagi Anda dan pengguna. Jika mengizinkan seseorang menggunakan kunci Anda, atau jika Anda membiarkan keystore dan sandi berada di lokasi yang tidak aman, sehingga pihak ketiga dapat menemukan dan menggunakannya, identitas penulis dan kepercayaan pengguna akan mudah disusupi.
Jika pihak ketiga berhasil mengambil kunci penandatanganan aplikasi Anda tanpa sepengetahuan atau izin Anda, orang tersebut dapat menandatangani dan mendistribusikan aplikasi yang dengan niat jahat menggantikan aplikasi asli Anda atau merusaknya. Orang tersebut juga dapat menandatangani dan mendistribusikan aplikasi dengan identitas Anda yang dapat membahayakan aplikasi lain, bahkan sistem, atau merusak atau mencuri data pengguna.
Kunci pribadi Anda diperlukan untuk menandatangani semua versi aplikasi Anda di masa mendatang. Jika kunci Anda hilang atau tidak dapat ditemukan, Anda tidak akan dapat memublikasikan update ke aplikasi yang sudah ada. Anda tidak dapat membuat kembali kunci yang sebelumnya pernah dibuat.
Reputasi Anda sebagai entitas developer bergantung pada pengamanan yang benar terhadap kunci penandatanganan aplikasi Anda setiap saat hingga masa berlaku kunci tersebut berakhir. Berikut beberapa tips untuk menjaga keamanan kunci Anda:
- Pilih sandi yang kuat untuk keystore dan kunci.
- Jangan berikan atau pinjamkan kunci pribadi Anda kepada siapa pun, dan jangan biarkan orang yang tidak berwenang mengetahui keystore dan sandi kunci Anda.
- Simpan file keystore yang berisi kunci pribadi di tempat yang aman dan terlindungi.
Secara umum, jika Anda mengikuti tindakan pencegahan yang semestinya saat membuat, menggunakan, dan menyimpan kunci, kunci akan tetap aman.
Menghapus informasi penandatanganan dari file build Anda
Saat Anda membuat konfigurasi penandatanganan, Android Studio akan menambahkan informasi
penandatanganan Anda dalam teks biasa ke file build.gradle
modul. Jika
Anda bekerja dengan tim atau menjadikan kode Anda open source, pastikan untuk
memindahkan informasi sensitif ini dari file build sehingga tidak dapat diakses
oleh orang lain. Untuk melakukannya, buat file properti yang terpisah untuk menyimpan
informasi yang aman dan rujuk file tersebut dalam file build seperti berikut:
- Buat konfigurasi penandatanganan dan tetapkan ke satu atau beberapa jenis build. Petunjuk ini mengasumsikan bahwa Anda telah mengonfigurasi penandatanganan tunggal untuk jenis build rilis Anda, seperti yang dijelaskan dalam Mengonfigurasi proses build agar otomatis menandatangani aplikasi di atas.
- Buat file bernama
keystore.properties
dalam direktori utama project Anda. File ini harus berisi informasi penandatanganan Anda seperti berikut:storePassword=myStorePassword keyPassword=mykeyPassword keyAlias=myKeyAlias storeFile=myStoreFileLocation
- Dalam file
build.gradle
modul, tambahkan kode untuk memuat filekeystore.properties
sebelum blokandroid {}
.Groovy
... // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. def keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. def keystoreProperties = new Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... }
Kotlin
... import java.util.Properties import java.io.FileInputStream // Create a variable called keystorePropertiesFile, and initialize it to your // keystore.properties file, in the rootProject folder. val keystorePropertiesFile = rootProject.file("keystore.properties") // Initialize a new Properties() object called keystoreProperties. val keystoreProperties = Properties() // Load your keystore.properties file into the keystoreProperties object. keystoreProperties.load(FileInputStream(keystorePropertiesFile)) android { ... }
Catatan: Anda dapat memilih untuk menyimpan file
keystore.properties
di lokasi lain (misalnya, dalam folder modul, bukan dalam folder root untuk project, atau di server build jika menggunakan alat continuous integration). Dalam hal ini, Anda harus mengubah kode di atas agar menginisialisasikeystorePropertiesFile
menggunakan lokasi filekeystore.properties
yang sebenarnya. - Anda dapat merujuk ke properti yang disimpan dalam
keystoreProperties
menggunakan sintaksiskeystoreProperties['propertyName']
. Ubah bloksigningConfigs
dalam filebuild.gradle
modul Anda agar dapat merujuk informasi penandatanganan yang disimpan dalamkeystoreProperties
menggunakan sintaksis ini.Groovy
android { signingConfigs { config { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } ... }
Kotlin
android { signingConfigs { create("config") { keyAlias = keystoreProperties["keyAlias"] as String keyPassword = keystoreProperties["keyPassword"] as String storeFile = file(keystoreProperties["storeFile"] as String) storePassword = keystoreProperties["storePassword"] as String } } ... }
- Buka jendela alat Build Variants dan pastikan jenis build rilis sudah dipilih.
- Pilih opsi pada Build > Build Bundle (s) / APK (s) untuk mem-build
APK atau app bundle dari build rilis Anda.
Anda akan melihat output build pada
direktori
build/outputs/
untuk modul Anda.
Karena file build tidak lagi berisi informasi sensitif, sekarang Anda dapat
menyertakannya dalam kontrol sumber atau menguploadnya ke codebase bersama. Pastikan
untuk menyimpan file keystore.properties
dengan aman. Caranya antara lain
dengan menghapusnya dari sistem kontrol sumber Anda.