Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

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 oleh Google Play akan menyelesaikannya. Namun, Anda juga dapat menandatangani aplikasi secara manual untuk diupload ke Google Play dan app store lainnya.

Halaman ini memandu Anda memahami beberapa konsep penting terkait penandatanganan aplikasi dan keamanan, cara menandatangani aplikasi untuk dirilis ke Google Play menggunakan Android Studio, dan cara untuk ikut serta dalam penandatanganan aplikasi oleh Google Play.

Berikut adalah ringkasan tingkat tinggi tentang langkah-langkah yang mungkin perlu Anda lakukan untuk menandatangani dan memublikasikan aplikasi baru ke Google Play:

  1. Buat keystore dan kunci upload
  2. Tanda tangani aplikasi Anda dengan kunci upload
  3. Ikut serta dalam penandatanganan aplikasi oleh Google Play
  4. Upload aplikasi Anda ke Google Play
  5. Persiapkan & luncurkan 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 menghasilkannya, 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 menggunakan penandatanganan aplikasi oleh Google Play
  3. (Direkomendasikan) Buat dan daftarkan sertifikat upload untuk update aplikasi Anda selanjutnya
  4. Upload aplikasi Anda ke Google Play
  5. Persiapkan & luncurkan 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 oleh Google Play

Dengan penandatanganan aplikasi oleh Google Play, Google akan mengelola dan melindungi kunci penandatanganan aplikasi Anda serta menggunakannya untuk menandatangani APK guna pendistribusian. Selain itu, karena app bundle mengikuti proses build dan penandatanganan APK ke Google Play Store, Anda harus ikut serta dalam penandatanganan aplikasi oleh Google Play sebelum mengupload app bundle. Dengan begitu, Anda akan mendapatkan manfaat dari hal-hal berikut:

  • Menggunakan Android App Bundle dan mendukung Pengiriman Dinamis Google Play. Android App Bundle membuat ukuran aplikasi Anda menjadi jauh lebih kecil, menyederhanakan rilis, serta memungkinkan fitur dinamis dan 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 oleh Google Play menggunakan dua kunci: kunci penandatanganan aplikasi dan kunci upload, yang dijelaskan secara lebih mendetail di bagian tentang Kunci dan keystore. Anda dapat menyimpan kunci upload dan menggunakannya untuk menandatangani aplikasi untuk diupload ke Google Play Store. Dengan menggunakan kunci upload terpisah, Anda dapat meminta agar kunci upload disetel ulang apabila hilang atau berada dalam kondisi tidak aman. 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 ditujukkan dalam gambar 1.

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

Gambar 1. Menandatangani aplikasi dengan penandatanganan aplikasi oleh Google Play

Kunci Anda disimpan pada infrastruktur yang juga 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.

Ketika menggunakan penandatanganan aplikasi oleh Google Play, dan jika Anda kehilangan kunci upload, atau kunci berada dalam kondisi tidak aman, Anda dapat menghubungi Google untuk mencabut kunci upload lama dan membuat yang baru. Karena kunci penandatanganan aplikasi dilindungi oleh Google, Anda dapat mengupload kembali versi aplikasi yang baru sebagai update untuk aplikasi yang asli meskipun Anda mengubah kunci upload. Untuk mempelajari selengkapnya, baca Menyetel ulang kunci upload pribadi yang hilang atau berada dalam kondisi tidak aman.

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.

Kunci, sertifikat, dan keystore

Berbicara tentang penandatanganan aplikasi, penting untuk memahami konsep dan definisi yang dijelaskan di bawah ini.

Sertifikat

Sertifikat kunci publik ( file .der atau .pem), juga disebut sertifikat digital atau sertifikat identitas, berisi kunci publik dari pasangan kunci umum/pribadi, serta beberapa metadata lainnya yang mengidentifikasi pemilik (misalnya, nama dan lokasi) yang memiliki kunci pribadi terkait.

Saat aplikasi ditandatangani, fitur penandatanganan akan menyertakan sertifikat ini ke aplikasi Anda. Sertifikat ini mengaitkan APK atau app bundle dengan Anda dan kunci pribadi yang terkait. Hal ini membantu Android memastikan bahwa semua update mendatang untuk aplikasi Anda memang autentik dan berasal dari penulis aslinya. Kunci yang digunakan untuk membuat sertifikat ini disebut kunci penandatanganan aplikasi.

Anda dapat mendownload sertifikat untuk kunci penandatanganan aplikasi dan kunci upload dari halaman penandatanganan aplikasi di Konsol Play guna mendaftarkan kunci dengan penyedia API. Sertifikat dapat dibagikan dengan siapa pun karena tidak berisi kunci pribadi Anda.

Setiap aplikasi harus menggunakan sertifikat yang sama selama masa penggunaannya agar pengguna dapat menginstal versi baru sebagai update untuk aplikasi. Untuk informasi selengkapnya tentang keuntungan penggunaan sertifikat yang sama bagi semua aplikasi selama masa penggunaannya, lihat Pertimbangan penandatanganan di bagian bawah.

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.

Berikut adalah beberapa jenis kunci dan keystore 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 akan berubah selama masa penggunaan aplikasi Anda. 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 dalam salah satu cara berikut:

    • Jika Anda ikut serta dan meminta Google menghasilkan kunci penandatanganan aplikasi untuk Anda, kunci yang digunakan untuk menandatangani aplikasi untuk rilis akan ditetapkan sebagai kunci upload.
    • Jika memberikan kunci penandatanganan aplikasi ke Google saat memilih untuk mengikutsertakan aplikasi baru atau yang sudah ada, Anda memiliki opsi untuk membuat kunci upload baru saat atau setelah memilih guna meningkatkan keamanan.
    • Jika tidak membuat kunci upload baru, Anda tetap akan menggunakan kunci penandatanganan aplikasi sebagai kunci upload untuk menandatangani setiap rilis.

    Tips: Agar kunci tetap aman, sebaiknya pastikan untuk membedakan kunci penandatanganan aplikasi dan kunci upload.

  • Java keystore (.jks atau .keystore): File biner yang berfungsi sebagai repositori sertifikat dan kunci privat.

  • Fitur Play Encrypt Private Key (PEPK): Gunakan fitur ini untuk mengekspor kunci pribadi dari Java Keystore dan mengenkripsinya untuk ditransfer ke Google Play. Saat memberikan kunci penandatanganan aplikasi untuk digunakan oleh Google, pilih opsi Export and upload a key from a Java keystore, lalu ikuti petunjuk untuk mendownload dan menggunakan fitur ini. Atau, pilih opsi Export and upload a key (not using a Java keystore) untuk mendownload, meninjau, dan menggunakan kode sumber terbuka fitur PEPK.

Menandatangani build debug

Saat menjalankan atau men-debug project dari IDE, Android Studio akan otomatis menandatangani aplikasi Anda dengan sertifikat debug yang dihasilkan oleh fitur SDK Android. Saat menjalankan atau men-debug project Anda di Android Studio untuk kali pertama, IDE akan otomatis membuat keystore dan sertifikat debug di $HOME/.android/debug.keystore serta menyetel sandi untuk keystore dan kunci tersebut.

Sertifikat debug dibuat oleh fitur 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 menyimpan informasi penandatanganan debug secara otomatis 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. Saat 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/ di OS X dan Linux
  • C:\Documents and Settings\user\.android\ di Windows XP
  • C:\Users\user\.android\ di Windows Vista serta Windows 7, 8, dan 10

Pada kali berikutnya Anda mem-build dan menjalankan versi debug aplikasi, Android Studio akan menghasilkan kembali keystore dan kunci debug baru.

Menandatangani aplikasi Anda untuk rilis ke Google Play

Jika sudah siap untuk mempublikasikan 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 oleh Google Play. Bagian ini menunjukkan cara menandatangani aplikasi dengan benar untuk rilis dan ikut serta dalam penandatanganan aplikasi oleh Google Play.

Membuat keystore dan kunci upload

Jika belum memiliki kunci upload, yang akan berguna saat Anda ikut serta dalam penandatanganan aplikasi oleh Google Play, silakan buat menggunakan Android Studio dengan langkah berikut:

  1. Di panel menu, klik Build > Build > Generate Signed Bundle/APK.
  2. Dalam 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 ditentukan 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 menyelesaikan 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 Batal.

Menandatangani aplikasi dengan kunci Anda

Jika sudah memiliki kunci upload, gunakan kunci untuk menandatangani aplikasi. Jika aplikasi Anda sudah ditandatangani dan dipublikasikan ke Google Play store dengan kunci penandatanganan aplikasi yang sudah ada, gunakan kunci untuk menandatangani aplikasi dan pastikan Anda mengenkripsi serta mengekspornya untuk mengikutsertakan aplikasi dalam penandatanganan aplikasi oleh Google Play. Kemudian, Anda dapat membuat kunci upload yang 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. Di dalam 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 mempersiapkan 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 akan menandatangani app bundle dengan kunci penandatanganan aplikasi yang sudah ada dan nantinya ingin mengikutsertakan aplikasi ke penandatanganan aplikasi oleh Google Play, centang kotak di sebelah Export encrypter key, lalu tentukan jalur untuk menyimpan kunci penandatanganan sebagai file *.pepk yang dienkripsi. Anda kemudian dapat menggunakan kunci penandatanganan aplikasi yang dienkripsi untuk mengikutsertakan aplikasi yang sudah ada dalam penandatanganan aplikasi oleh Google 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 selengkapnya, baca APK Signature Scheme v2

  9. Klik Finish.

    Gambar 4. Membuat versi aplikasi Anda yang ditandatangani untuk varian 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 sudut kanan bawah pop-up untuk memperluasnya, lalu mengklik Show Exported Key File seperti ditunjukkan dalam gambar 6.

Sekarang, Anda pun siap untuk mengikutsertakan aplikasi dalam penandatanganan aplikasi oleh Google Play dan menguploadnya untuk rilis. 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.

Ikut serta dalam penandatanganan aplikasi oleh Google Play

Seperti yang sudah dijelaskan di halaman ini, penandatanganan aplikasi oleh Google Play adalah cara yang direkomendasikan untuk menandatangani aplikasi Anda agar dapat didistribusikan melalui Google Play. Langkah-langkah yang perlu dilakukan untuk mengikutsertakan aplikasi bergantung apakah aplikasi Anda belum dipublikasikan ke Google Play, atau aplikasi Anda 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-langkah berikut:

  1. Buat kunci upload jika belum melakukannya, lalu tanda tangani aplikasi Anda dengan kunci 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 file untuk menemukan dan mengupload aplikasi yang telah ditandatangani menggunakan kunci upload. Untuk informasi selengkapnya tentang merilis aplikasi, baca mempersiapkan dan meluncurkan rilis Anda. Ketika merilis aplikasi setelah ikut serta dalam penandatanganan aplikasi oleh Google Play, Google Play akan menghasilkan 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 tidak aman.

Mengikutsertakan aplikasi yang sudah ada

Jika akan mengupdate aplikasi yang telah dipublikasikan ke Google Play menggunakan kunci penandatanganan aplikasi yang sudah ada, Anda dapat ikut serta dalam penandatanganan aplikasi oleh Google Play dengan mengikuti langkah berikut:

  1. Tanda tangani aplikasi Anda dengan kunci penandatanganan aplikasi yang sudah ada, jika Anda belum melakukannya, 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.
  2. Login ke Konsol Play, lalu buka aplikasi Anda.
  3. Pada menu di sebelah kiri, klik Release management > App signing.
  4. Jika ada, tinjau Persyaratan Layanan, lalu pilih Accept.
  5. Pilih salah satu opsi yang paling mendeskripsikan kunci penandatanganan yang ingin Anda upload ke Google Play, lalu ikuti petunjuk yang ditampilkan. Sebagai contoh, 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 ketika menerapkannya ke pengguna. Namun, salah satu keuntungan terpenting Penandatanganan Aplikasi oleh Google Play adalah kemampuan untuk memisahkan kunci yang digunakan untuk menandatangani artefak yang diupload ke Google Play dengan kunci yang digunakan oleh Google Play untuk menandatangani aplikasi Anda agar dapat 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 memublikasikan aplikasi yang tidak ditandatangani oleh kunci upload, Konsol Google Play akan menyediakan opsi untuk mendaftarkan kunci bagi update selanjutnya untuk aplikasi tersebut. Meskipun langkah ini bersifat opsional, sebaiknya publikasikan aplikasi dengan kunci yang terpisah dari yang digunakan oleh Google Play untuk mendistribusikan aplikasi Anda kepada pengguna. Dengan demikian, Google akan menjaga kunci penandatanganan Anda agar tetap aman, dan Anda memiliki opsi untuk menyetel ulang kunci upload pribadi yang hilang atau tidak aman. 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 memublikasikan aplikasi baru yang ditandatangani dengan kunci penandatanganan dan mengikutsertakannya dalam penandatanganan aplikasi oleh Google Play.
  • Saat akan mempublikasikan aplikasi yang sudah ada dan diikutsertakan dalam penandatanganan Aplikasi oleh Google Play, tetapi 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 tidak aman.

Buat keystore dan kunci upload jika belum melakukannya.

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
    

Sekarang, 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 beberapa situasi, Anda mungkin ingin mengubah kunci penandatanganan aplikasi Anda. Misalnya, karena Anda ingin kunci yang lebih kuat secara kriptografis, atau kunci penandatanganan berada dalam kondisi yang tidak aman. Namun, karena pengguna hanya dapat mengupdate aplikasi jika update ditandatangani dengan kunci penandatanganan yang sama, sulit untuk mengubah kunci tersebut bagi 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 kunci diupgrade.

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

Menyetel ulang kunci upload pribadi yang hilang atau tidak aman

Jika kunci upload pribadi Anda hilang atau berada dalam kondisi tidak aman, Anda dapat membuat yang baru dan menghubungi tim dukungan Google Play untuk menyetel ulang kunci tersebut.

Mengonfigurasi proses build agar menandatangani aplikasi secara otomatis

Di Android Studio, Anda dapat mengonfigurasi project agar menandatangani versi rilis aplikasi secara otomatis saat proses build dengan membuat konfigurasi penandatanganan dan menetapkannya ke jenis build rilis Anda. Konfigurasi penandatanganan terdiri dari 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. Memilih 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 menandatangani aplikasi secara otomatis, menggunakan konfigurasi penandatanganan yang Anda tentukan. Anda dapat menemukan APK atau app bundle yang telah ditandatangani pada direktori build/outputs/ dalam direktori project untuk modul yang sedang Anda build.

Ketika 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 cara menghapus informasi penandatanganan dari file build selengkapnya dalam Menghapus Informasi Penandatanganan dari File Build Anda. Untuk informasi selengkapnya tentang cara menjaga keamanan informasi penandatanganan Anda, baca Mengamankan kunci Anda.

Menandatangani setiap varian produk secara berbeda

Jika aplikasi menggunakan varian produk dan Anda ingin menandatangani setiap variannya secara berbeda, Anda dapat membuat konfigurasi penandatanganan tambahan dan menetapkannya menurut varian:

  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 menggunakan penandatanganan aplikasi oleh Google 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 dan Pengiriman Dinamis Google Play.

Jika sudah siap membuat kunci dan keystore Anda sendiri, pastikan terlebih dahulu memilih sandi yang kuat untuk keystore dan sandi kuat yang terpisah untuk setiap kunci pribadi yang disimpan di keystore. Anda harus menyimpan keystore di tempat yang aman dan terlindungi. Jika Anda kehilangan akses ke kunci penandatanganan aplikasi atau kunci berada dalam kondisi tidak aman, Google tidak bisa mengambil kunci penandatanganan aplikasi tersebut untuk Anda, dan Anda tidak akan dapat merilis versi baru aplikasi kepada pengguna sebagai update untuk aplikasi yang 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 dalam gambar 10.

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

Saat menggunakan penandatanganan aplikasi oleh Google Play, Google akan menyimpan kunci penandatanganan Anda dengan aman, 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 dengan 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 masing-masing modul secara mandiri.
  • Berbagi kode/data melalui izin: Android menyediakan penerapan izin berbasis tanda tangan sehingga aplikasi dapat memberitahukan fungsionalitas ke aplikasi lain yang ditandatangani dengan sertifikat yang ditentukan. 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 berencana untuk mendukung upgrade aplikasi, pastikan kunci penandatanganan aplikasi Anda memiliki periode validitas melebihi masa penggunaan aplikasi tersebut yang diharapkan. Masa berlaku yang direkomendasikan adalah 25 tahun atau lebih. Saat masa berlaku kunci berakhir, pengguna tidak lagi dapat mengupgrade versi 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.

Simpan kunci Anda dengan aman

Jika memilih untuk mengelola dan mengamankan kunci penandatanganan aplikasi dan keystore sendiri (bukan ikut serta dalam penandatanganan aplikasi oleh Google Play), sangat penting untuk mengamankan kunci penandatanganan aplikasi, baik bagi Anda sendiri maupun pengguna. Jika Anda 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 menjadi tidak aman.

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 bisa membahayakan aplikasi lain, bahkan sistem, atau merusak atau mencuri data pengguna.

Kunci pribadi diperlukan untuk menandatangani semua versi aplikasi Anda selanjutnya. Jika kunci 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 membuka sumber kode Anda, 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 menandatangani aplikasi secara otomatis di atas.
  2. Buat file bernama keystore.properties dalam direktori root 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 Anda, tambahkan kode untuk memuat file keystore.properties sebelum blok android {}.
        ...
    
        // 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 {
            ...
        }
    
        

    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 fitur continuous integration). Dalam hal ini, Anda harus mengubah kode di atas agar menginisialisasi keystorePropertiesFile dengan benar menggunakan lokasi file keystore.properties yang sebenarnya.

  4. Anda dapat merujuk ke properti yang disimpan dalam keystoreProperties menggunakan sintaksis keystoreProperties['propertyName']. Ubah blok signingConfigs dalam file build.gradle modul Anda agar dapat merujuk informasi penandatanganan yang disimpan dalam keystoreProperties menggunakan sintaksis ini.
        android {
            signingConfigs {
                config {
                    keyAlias keystoreProperties['keyAlias']
                    keyPassword keystoreProperties['keyPassword']
                    storeFile file(keystoreProperties['storeFile'])
                    storePassword keystoreProperties['storePassword']
                }
            }
            ...
          }
        
  5. Buka jendela fitur Build Variants dan pastikan jenis build rilis sudah dipilih.
  6. Pilih opsi dalam Build > Build Bundle (s) / APK (s) untuk mem-build seluruh APK atau app bundle dari build rilis Anda. Anda akan melihat output build dalam direktori build/outputs/ untuk modul Anda.

Karena file build tidak lagi berisi informasi sensitif, Anda sekarang dapat menyertakannya dalam kontrol sumber atau menguploadnya ke basis kode bersama. Pastikan untuk menjaga keamanan file keystore.properties. Caranya antara lain adalah dengan menghapusnya dari sistem kontrol sumber Anda.