Menandatangani aplikasi

Android mengharuskan semua APK ditandatangani secara digital dengan sertifikat sebelum diinstal di perangkat atau diupdate. Jika menggunakan Android App Bundle, Anda hanya perlu menandatangani app bundle sebelum menguploadnya ke Konsol Play, dan Penandatanganan Aplikasi Play akan menangani semuanya. Namun, Anda juga dapat menandatangani aplikasi secara manual untuk diupload ke Google Play dan app store lainnya.

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 ikut serta dalam 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:

  1. Membuat keystore dan kunci upload
  2. Menandatangani aplikasi dengan kunci upload
  3. Memilih untuk ikut serta dalam Penandatanganan Aplikasi Play
  4. Mengupload aplikasi Anda ke Google Play
  5. 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:

  1. Tanda tangani aplikasi Anda dengan kunci penandatanganan aplikasi, lalu pilih opsi untuk mengenkripsi dan mengekspor kunci penandatanganan.
  2. Upload kunci penandatanganan aplikasi untuk memilih ikut serta Penandatanganan Aplikasi Play.
  3. (Direkomendasikan) Buat dan daftarkan sertifikat upload untuk update aplikasi Anda selanjutnya
  4. Mengupload aplikasi Anda ke Google Play
  5. 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 harus ikut serta dalam 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.

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. Dengan menggunakan kunci upload terpisah, Anda dapat meminta agar kunci upload disetel ulang jika kunci Anda hilang atau disusupi. Bedanya, jika Anda tidak ikut serta dalam penandatanganan aplikasi oleh Google Play dan kehilangan kunci penandatanganan aplikasi, Anda tidak akan dapat mengupdate aplikasi.

Jika sudah siap untuk memublikasikan aplikasi, Anda dapat menandatanganinya menggunakan Android Studio lalu menguploadnya ke Google Play. Kunci yang digunakan untuk menandatangani aplikasi akan menjadi kunci upload aplikasi Anda. Google menggunakan sertifikat upload untuk memverifikasi identitas Anda dan menandatangani APK dengan kunci penandatanganan aplikasi untuk distribusi seperti ditunjukkan dalam gambar 1.

Jika belum memiliki kunci penandatanganan aplikasi, Anda dapat membuatnya saat proses pendaftaran.

Gambar 1. Menandatangani aplikasi dengan Penandatanganan Aplikasi Play

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 Anda menggunakan Penandatanganan Aplikasi Play, jika kehilangan kunci upload, atau jika disusupi, Anda dapat menghubungi Google untuk mencabut kunci upload lama dan membuat kunci baru. 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 Menyetel ulang 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 > Integritas 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 alat Android SDK. 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. Anda tidak dapat mengedit konfigurasi penandatanganan debug secara langsung, tetapi dapat mengonfigurasi cara menandatangani build rilis.

Untuk informasi selengkapnya tentang cara mem-build dan menjalankan aplikasi untuk proses debug, lihat Mem-build 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. Bila 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 Linux
  • C:\Documents and Settings\user\.android\ pada Windows XP
  • C:\Users\user\.android\ pada Windows Vista dan Windows 7, 8, dan 10

Pada kali berikutnya Anda mem-build 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, Anda juga harus ikut serta dalam Penandatanganan Aplikasi Play. Bagian ini menunjukkan cara menandatangani aplikasi dengan benar untuk rilis dan memilih untuk ikut serta dalam Penandatanganan Aplikasi Play.

Membuat keystore dan kunci upload

Jika belum memiliki kunci upload, yang akan berguna saat Anda ikut serta dalam Penandatanganan Aplikasi Play, Anda dapat membuatnya menggunakan Android Studio sebagai berikut:

  1. Di panel menu, Klik Build > Generate Signed Bundle/APK.
  2. Pada dialog Generate Signed Bundle or APK, pilih Android App Bundle atau APK, lalu klik Next.
  3. Di bawah kolom untuk Key store path, klik Create new.
  4. Di jendela New Key Store, berikan informasi berikut untuk keystore dan kunci Anda, seperti ditunjukkan dalam gambar 2.

    Gambar 2. Membuat keystore dan kunci upload baru di Android Studio.

  5. Keystore

    • Key store path: Pilih lokasi untuk membuat keystore Anda.
    • Password: Buat dan konfirmasikan sandi yang aman untuk keystore.
  6. Kunci

    • Alias: Masukkan nama identifikasi untuk kunci Anda.
    • Password: Buat dan konfirmasikan sandi yang aman untuk kunci. Sandi ini harus berbeda dari yang Anda pilih untuk keystore.
    • 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.
  7. Setelah melengkapi formulir, klik OK.

  8. Jika ingin mem-build 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 sudah ditandatangani dan dipublikasikan ke Google Play Store dengan kunci penandatanganan aplikasi yang ada, gunakan kunci untuk menandatangani aplikasi dan pastikan Anda mengenkripsi serta mengekspornya untuk mengikutsertakan aplikasi dalam Penandatanganan Aplikasi Play. Kemudian, Anda dapat membuat kunci upload terpisah dan mendaftarkan sertifikat publik kunci upload dengan Google Play untuk menandatangani dan mengupload update berikutnya bagi aplikasi Anda.

Untuk menandatangani aplikasi menggunakan Android Studio dan mengekspor kunci penandatanganan aplikasi yang sudah ada, ikuti langkah-langkah berikut:

  1. Jika dialog Generate Signed Bundle or APK belum terbuka, klik Build > Generate Signed Bundle/APK.
  2. Pada dialog Generate Signed Bundle or APK, pilih Android App Bundle atau APK, lalu klik Next.
  3. Pilih modul dari drop-down.
  4. Tentukan lokasi 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.

    Gambar 3. Menandatangani aplikasi dengan kunci upload.

  5. Jika Anda menandatangani app bundle dengan kunci penandatanganan aplikasi yang ada, dan Anda ingin mengikutsertakan aplikasi ke Penandatanganan Aplikasi Play, centang kotak di samping Export encrypted key dan tentukan jalur untuk menyimpan kunci penandatanganan Anda sebagai file *.pepk yang dienkripsi. Anda kemudian dapat menggunakan kunci penandatanganan aplikasi yang dienkripsi untuk mengikutsertakan aplikasi yang sudah ada ke dalam Penandatanganan Aplikasi Play.

  6. Klik Next.

  7. Di jendela berikutnya (ditunjukkan dalam gambar 4), pilih folder tujuan untuk aplikasi Anda yang ditandatangani, pilih jenis build, lalu pilih varian produk jika perlu.

  8. Jika akan mem-build dan menandatangani APK, Anda harus memilih Signature Versions yang akan didukung oleh aplikasi Anda. Untuk mempelajari lebih lanjut, baca tentang skema penandatanganan aplikasi

  9. Klik Finish.

    Gambar 4. Membuat versi aplikasi Anda yang ditandatangani untuk ragam produk yang dipilih.

Gambar 5. Klik link pada pop-up untuk menganalisis atau menemukan app bundle, atau menemukan kunci penandatanganan yang diekspor.

Setelah Android Studio selesai mem-build aplikasi yang ditandatangani, Anda dapat menemukan atau menganalisis aplikasi dengan mengklik opsi yang sesuai dalam notifikasi pop-up. Jika memilih opsi untuk mengekspor kunci penandatanganan, Anda dapat membukanya langsung dengan mengklik panah drop-down di pojok kanan bawah pop-up untuk memperluasnya, lalu mengklik Show Exported Key File, 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.

Memilih untuk ikut serta dalam Penandatanganan Aplikasi Play

Seperti yang dijelaskan sebelumnya di halaman ini, Penandatanganan Aplikasi Play adalah cara yang direkomendasikan untuk menandatangani aplikasi Anda agar didistribusikan melalui Google Play. Langkah-langkah yang perlu dilakukan untuk mengikutsertakan aplikasi bergantung pada apakah aplikasi Anda belum dipublikasikan ke Google Play, atau sudah ditandatangani dan dipublikasikan menggunakan kunci penandatanganan aplikasi yang sudah ada.

Mengikutsertakan aplikasi baru

Untuk mengikutsertakan aplikasi yang belum dipublikasikan ke Google Play, ikuti langkah berikut:

  1. Jika belum melakukannya, buat kunci upload, lalu tanda tangani aplikasi Anda dengan kunci upload tersebut.
  2. Login ke Konsol Play.
  3. Ikuti langkah-langkah mempersiapkan & meluncurkan rilis untuk membuat rilis baru.
  4. Setelah memilih track rilis, konfigurasikan penandatanganan aplikasi di bawah bagian Let Google create and manage my app signing key seperti berikut:
    • Agar Google Play menghasilkan kunci penandatanganan aplikasi untuk Anda dan menggunakannya untuk menandatangani aplikasi, pilih Continue. 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 dalam akun developer Anda, pilih Advanced options > 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 Advanced options, lalu pilih salah satu opsi yang memungkinkan Anda mengupload kunci pribadi serta sertifikat publiknya dengan aman.

Di bagian Android App Bundles and APKs to add, 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 Anda merilis aplikasi setelah ikut serta dalam Penandatanganan Aplikasi Play, Google Play akan membuat 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 Menyetel ulang kunci upload pribadi yang hilang atau disusupi.

Mengikutsertakan aplikasi yang sudah ada

Jika 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:

  1. Jika Anda belum melakukannya, tanda tangani aplikasi menggunakan Android Studio dengan kunci penandatanganan aplikasi yang sudah ada dan pastikan untuk mencentang kotak di samping Export encrypted key guna menyimpan kunci penandatanganan sebagai file *.pepk yang dienkripsi. Anda akan membutuhkan file ini di langkah selanjutnya. Hal ini juga dapat dilakukan menggunakan alat PEPK, yang dapat didownload dari Konsol Play.
  2. Login ke Konsol Play, lalu buka aplikasi Anda.
  3. Di menu kiri, klik Rilis > Penyiapan > Integritas aplikasi.
  4. Jika ada, tinjau Persyaratan Layanan, lalu pilih Setuju.
  5. Pilih salah satu opsi yang paling mendeskripsikan kunci penandatanganan yang ingin Anda upload ke Google Play, lalu ikuti petunjuk yang ditampilkan. Contohnya, jika Anda menggunakan Android Studio untuk mengekspor kunci penandatanganan aplikasi seperti yang dijelaskan di halaman ini, pilih Upload a key exported from Android Studio, lalu upload file *.pepk untuk kunci Anda.
  6. 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 menyetel ulang 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 Anda ingin mendaftarkan sertifikat upload, lakukan langkah-langkah di bawah ini dan lanjutkan ke bagian tentang cara menyetel ulang 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 dengan Google ketika diminta dalam Konsol Play atau baca bagian di bawah ini untuk mendaftarkannya melalui tim dukungan Google Play.

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 baru dan update aplikasi, sementara kunci yang lama akan digunakan untuk menandatangani update bagi pengguna yang sudah menginstal aplikasi sebelum mengupgrade kunci tersebut.

Untuk mempelajari lebih lanjut, baca Mengupgrade kunci penandatanganan aplikasi untuk penginstalan baru.

Mereset kunci upload pribadi yang hilang atau disusupi

Jika kunci upload pribadi hilang atau kunci pribadi Anda disusupi, Anda dapat membuat yang baru dan menghubungi tim dukungan Google Play untuk menyetel ulang kunci.

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:

  1. Di jendela Project, klik kanan aplikasi Anda, lalu klik Open Module Settings.
  2. Di jendela Project Structure, pada Modules di panel kiri, klik modul yang ingin ditandatangani.
  3. Klik tab Signing, lalu klik Add .
  4. Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu konfigurasi), lalu masukkan informasi yang diperlukan.

    Gambar 7. Jendela untuk membuat konfigurasi penandatanganan baru.

  5. Klik tab Build Types.
  6. Klik build release.
  7. Pada Signing Config, pilih konfigurasi penandatanganan yang baru saja Anda buat.

    Gambar 8. Pilih konfigurasi penandatanganan di Android Studio.

  8. Klik OK.

Sekarang, setiap kali Anda mem-build 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 tentang 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, baca Mengamankan kunci Anda.

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:

  1. Di jendela Project, klik kanan aplikasi Anda, lalu klik Open Module Settings.
  2. Di jendela Project Structure, pada Modules di panel kiri, klik modul yang ingin ditandatangani.
  3. Klik tab Signing, lalu klik Add .
  4. Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu konfigurasi), lalu masukkan informasi yang diperlukan.

    Gambar 10. Jendela untuk membuat konfigurasi penandatanganan baru.

  5. Ulangi langkah 3 dan 4 bila perlu hingga Anda selesai membuat semua konfigurasi penandatanganan.
  6. Klik tab Flavors.
  7. Klik varian yang ingin dikonfigurasi, lalu pilih konfigurasi penandatanganan yang sesuai dari menu drop-down Signing Config.

    Gambar 11. Mengonfigurasi setelan penandatanganan menurut varian produk.

    Ulangi untuk mengonfigurasi varian produk lainnya.

  8. Klik OK.

Anda juga dapat menetapkan setelan penandatanganan dalam file konfigurasi Gradle. Untuk informasi selengkapnya, lihat Mengonfigurasi Setelan Penandatanganan.

Mengelola kunci penandatanganan Anda sendiri

Jika memilih untuk tidak ikut serta dalam Penandatanganan Aplikasi Play, Anda dapat mengelola kunci penandatanganan dan keystore aplikasi Anda 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 10.

Gambar 12. Menandatangani aplikasi saat Anda mengelola kunci penandatanganan aplikasi sendiri

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 memiliki masa berlaku yang berakhir di atas 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 Anda tanpa sepengetahuan atau izin Anda, orang tersebut dapat menandatangani dan mendistribusikan aplikasi yang secara tidak benar 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 proses 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 aman 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:

  1. 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.
  2. 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
    
  3. Dalam file build.gradle modul, tambahkan kode untuk memuat file keystore.properties sebelum blok android {}.

    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 menginisialisasi keystorePropertiesFile menggunakan lokasi file keystore.properties yang sebenarnya.

  4. Anda dapat merujuk ke properti yang disimpan dalam keystoreProperties menggunakan sintaks keystoreProperties['propertyName']. Ubah blok signingConfigs dalam file build.gradle modul Anda agar dapat merujuk informasi penandatanganan yang disimpan dalam keystoreProperties menggunakan sintaksis ini.

    Groovy

    android {
        signingConfigs {
            config {
                keyAlias keystoreProperties['keyAlias']
                keyPassword keystoreProperties['keyPassword']
                storeFile file(keystoreProperties['storeFile'])
                storePassword keystoreProperties['storePassword']
            }
        }
        ...
      }

    Kotlin

    android {
        signingConfigs {
            getByName("config") {
                keyAlias = keystoreProperties["keyAlias"]
                keyPassword = keystoreProperties["keyPassword"]
                storeFile = file(keystoreProperties["storeFile"])
                storePassword = keystoreProperties["storePassword"]
            }
        }
        ...
      }
  5. Buka jendela alat Varian Build dan pastikan jenis build rilis sudah dipilih.
  6. 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.