Menandatangani aplikasi Anda

Android mengharuskan semua APK ditandatangani secara digital dengan sertifikat agar bisa diinstal. Dan Anda perlu menandatangani Android App Bundle sebelum bisa menguploadnya ke Konsol Play.

Dokumen ini menjelaskan cara menandatangani APK atau app bundle menggunakan Android Studio, termasuk membuat dan menyimpan sertifikat Anda, menandatangani konfigurasi build yang berbeda menggunakan sertifikat yang berbeda, dan mengonfigurasi proses build untuk menandatangani APK Anda secara otomatis.

Sertifikat dan keystore

Sertifikat kunci umum, juga dikenal dengan sertifikat digital atau sertifikat identitas, berisi kunci umum dari pasangan kunci umum/pribadi, serta beberapa metadata lainnya yang mengidentifikasi pemilik kunci (misalnya, nama dan lokasi). Pemilik sertifikat memegang kunci pribadi yang bersangkutan.

Jika Anda menandatangani APK, fitur penandatanganan akan melampirkan sertifikat kunci umum ke APK—hal yang sama berlaku ketika menandatangani app bundle. Sertifikat kunci umum berfungsi sebagai "sidik jari" yang secara unik mengaitkan paket APK atau aplikasi ke Anda dan kunci pribadi yang bersangkutan. Hal ini membantu Android memastikan semua update mendatang untuk aplikasi Anda adalah autentik dan berasal dari penulis yang asli. Kunci yang digunakan untuk membuat sertifikat ini disebut kunci penandatanganan aplikasi.

Keystore adalah file biner yang berisi satu atau beberapa kunci pribadi.

Semua aplikasi harus menggunakan sertifikat yang sama selama masa aktifnya agar pengguna dapat menginstal versi baru bila ada update aplikasi. Untuk informasi selengkapnya tentang keuntungan penggunaan sertifikat yang sama bagi semua aplikasi selama masa aktifnya, lihat Pertimbangan Penandatanganan di bawah ini.

Menandatangani debug build Anda

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

Karena sertifikat debug dibuat oleh fitur build dan tidak aman secara desain, kebanyakan app store (termasuk Google Play Store) tidak akan menerima APK atau app bundle yang ditandatangani dengan sertifikat debug untuk publikasi.

Android Studio secara otomatis menyimpan informasi penandatanganan debug dalam konfigurasi penandatanganan sehingga Anda tidak perlu memasukkannya setiap kali men-debug. Konfigurasi penandatanganan adalah sebuah objek yang berisi semua informasi yang diperlukan untuk menandatangani aplikasi, termasuk lokasi keystore, sandi keystore, nama kunci, dan sandi kunci. Anda tidak bisa mengedit secara langsung konfigurasi penandatanganan debug, tetapi Anda bisa mengonfigurasi cara menandatangani build rilis.

Untuk informasi selengkapnya tentang cara membuat dan menjalankan aplikasi untuk proses debug, lihat Membuat dan Menjalankan Aplikasi Anda.

Kedaluwarsa sertifikat debug

Sertifikat yang ditandatangani sendiri serta digunakan untuk menandatangani aplikasi Anda untuk proses debug memiliki tanggal habis masa berlaku selama 30 hari sejak tanggal pembuatannya. Jika sertifikat habis masa berlakunya, Anda akan memperoleh error build.

Untuk memperbaiki masalah ini, hapus saja file debug.keystore. File disimpan di 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

Saat berikutnya Anda membuat dan menjalankan tipe debug build, fitur build akan menghasilkan kembali keystore dan kunci debug baru. Perhatikan, Anda harus menjalankan aplikasi, membuatnya sendiri tidak akan menghasilkan kembali keystore dan kunci debug.

Mengelola kunci Anda

Karena kunci penandatanganan aplikasi digunakan untuk memverifikasi identitas Anda sebagai developer dan untuk memastikan update yang mudah dan aman bagi pengguna, sangat penting untuk mengelola kunci dan menjaganya agar tetap aman, baik bagi Anda maupun pengguna. Anda bisa memilih untuk ikut menggunakan Penandatanganan Aplikasi oleh Google Play untuk secara aman mengelola dan menyimpan kunci penandatanganan aplikasi menggunakan infrastruktur Google atau untuk mengelola dan mengamankan keystore dan kunci penandatanganan aplikasi Anda sendiri.

Dengan memilih untuk ikut Penandatanganan Aplikasi oleh Google Play, Anda akan memperoleh manfaat berikut:

  • Memastikan bahwa kunci penandatanganan aplikasi tidak hilang. Kehilangan kunci penandatanganan aplikasi berarti aplikasi tidak bisa diupdate, jadi jangan sampai hilang.
  • Memastikan bahwa kunci penandatanganan aplikasi tidak dirusak. Kunci yang rusak akan memungkinkan penyerang berbahaya menerapkan versi berbahaya aplikasi Anda sebagai update atas penginstalan yang ada. Dengan Penandatanganan Aplikasi Play, developer hanya mengelola kunci upload yang bisa disetel ulang jika kunci hilang dan rusak. Seandainya rusak, penyerang juga perlu akses ke akun developer agar dapat melakukan sesuatu yang berbahaya.

Use Aplikasi Penandatanganan oleh Google Play

Dengan Aplikasi Penandatanganan oleh Google Play, Google mengelola dan melindungi kunci penandatanganan aplikasi untuk Anda dan menggunakannya untuk menandatangani APK untuk distribusi. Dan, karena app bundle menunda build dan penandatanganan APK ke Google Play Store, Anda harus mendaftar di Penandatanganan Aplikasi oleh Google Play sebelum Anda mengupload app bundle Anda.

Saat menggunakan Penandatanganan Aplikasi oleh Google Play, Anda menggunakan dua kunci: kunci penandatanganan aplikasi dan kunci upload. Anda menyimpan kunci upload dan menggunakannya untuk menandatangani aplikasi agar diupload ke Google Play Store.

Saat Anda memilih untuk menggunakan Penandatanganan Aplikasi oleh Google Play, Anda mengekspor dan mengenkripsi kunci penandatanganan aplikasi menggunakan fitur Play Encrypt Private Key yang disediakan oleh Google Play, lalu menguploadnya ke infrastruktur Google. Kemudian Anda membuat kunci upload yang terpisah dan mendaftarkannya ke Google. Saat sudah siap untuk memublikasikannya, Anda menandatangani aplikasi menggunakan kunci upload dan menguploadnya ke Google Play. Google kemudian menggunakan sertifikat upload untuk memverifikasi identitas Anda, dan menandatangani APK dengan kunci penandatanganan aplikasi untuk distribusi seperti yang ditampilkan dalam gambar 1. (Jika belum memiliki kunci penandatanganan aplikasi, Anda bisa membuatnya saat proses pendaftaran.)

Gambar 1. Penandatanganan aplikasi dengan Aplikasi Penandatanganan oleh Google Play

Saat menggunakan Penandatanganan Aplikasi oleh Google Play, jika Anda kehilangan kunci upload, atau ada risiko keamanan, Anda bisa menghubungi Google untuk mencabut kunci upload lama dan membuat kunci baru. Karena kunci penandatanganan aplikasi dilindungi oleh Google, Anda bisa terus mengupload versi baru aplikasi sebagai update untuk aplikasi asli, meskipun Anda mengubah kunci upload.

Untuk informasi selengkapnya tentang cara ikut serta menggunakan Penandatanganan Aplikasi oleh Google Play, lihat Mengelola kunci penandatanganan aplikasi Anda.

Mengelola kunci dan keystore Anda sendiri

Daripada menggunakan Penandatanganan Aplikasi oleh Google Play, Anda bisa memilih untuk mengelola kunci penandatanganan aplikasi dan keystore Anda sendiri. Jika Anda memilih untuk mengelola kunci penandatanganan aplikasi dan keystore sendiri, Anda bertanggung jawab untuk mengamankan kunci dan keystore. Selain itu, Anda tidak dapat mengupload Android App Bundle tanpa mendaftar di Penandatanganan Aplikasi oleh Google Play.

Ketika Anda siap untuk membuat kunci dan keystore Anda sendiri, pertama-tama pastikan Anda memilih sandi yang kuat untuk keystore dan sandi kuat terpisah lainnya 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 telah dirusak, Google tidak bisa mengambil kunci penandatanganan aplikasi untuk Anda, dan Anda tidak dapat merilis versi aplikasi yang baru 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 bertandatangan ke Google Play Store secara langsung untuk distribusi seperti yang ditampilkan dalam gambar 2.

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

Membuat kunci dan keystore

Jika Anda belum memiliki penandatanganan aplikasi atau kunci upload, Anda dapat membuatnya menggunakan Android Studio sebagai berikut:

  1. Di panel menu, Klik Build > Build > Hasilkan Paket Bertandatangan/APK.
  2. Dalam dialog Membuat Bundle atau APK yang Ditandatangani, pilih Android App Bundle atau APK dan klik Berikutnya.
  3. Di bawah kolom Key store path, klik Buat baru.

  4. Di jendela New Key Store, berikan informasi berikut untuk keystore dan kunci Anda, seperti yang ditampilkan dalam gambar 3.

    Gambar 3. Membuat keystore baru di Android Studio.

    Keystore

    • Key store path: Pilih lokasi pembuatan keystore Anda.
    • Sandi: Buat dan konfirmasikan sandi yang aman untuk keystore Anda.

    Kunci

    • Alias: Masukkan nama identifikasi untuk kunci Anda.
    • Sandi: Buat dan konfirmasikan sandi yang aman untuk kunci Anda. Ini harus berbeda dari sandi yang Anda pilih untuk keystore.
    • Validitas (tahun): Setel berapa tahun lamanya kunci Anda akan berlaku. Kunci Anda harus berlaku paling tidak selama 25 tahun, agar bisa menandatangani update aplikasi dengan kunci yang sama selama masa aktif aplikasi Anda.
    • Sertifikat: Masukkan informasi tentang diri Anda untuk sertifikat Anda. Informasi ini tidak ditampilkan dalam aplikasi Anda, melainkan disertakan dalam sertifikat Anda sebagai bagian dari APK.

    Setelah melengkapi formulir, klik OK.

  5. Lanjutkan dengan Menandatangani aplikasi untuk dirilis jika Anda ingin membuat APK yang ditandatangani dengan kunci baru, atau klik Batal jika Anda hanya ingin membuat kunci dan keystore, bukannya menandatangani APK.
  6. Jika Anda ingin menggunakan Penandatanganan Aplikasi oleh Google Play, lanjutkan dengan Mengelola kunci penandatanganan aplikasi Anda dan ikuti petunjuknya untuk menyiapkan Penandatanganan Aplikasi oleh Google Play.

Menyiapkan aplikasi Anda untuk dirilis

Terlepas dari bagaimana Anda memilih untuk mengelola kunci dan keystore, atau apakah Anda ingin membuat APK atau app bundle, Anda bisa menggunakan Android Studio untuk menandatangani aplikasi Anda dengan kunci upload key atau kunci penandatanganan aplikasi:

  • Jika Anda memilih untuk mengelola dan mengamankan kunci penandatanganan aplikasi dan keystore sendiri, Anda harus menandatangani APK dengan kunci penandatanganan aplikasi.
  • Jika Anda memilih menggunakan Google Play untuk mengelola dan mengamankan kunci penandatanganan aplikasi dan keystore, Anda harus menandatangani APK dengan kunci upload.

Untuk menandatangani APK Anda guna perilisan di Android Studio, ikuti langkah-langkah ini:

  1. Klik Build > Membuat Bundle/APK Bertandatangan.
  2. Dalam dialog Membuat Bundle atau APK yang Ditandatangani, pilih Android App Bundle atau APK dan klik Berikutnya.
  3. Pilih modul dari drop down.
  4. Jika informasi penandatanganan Anda sudah siap, pilih keystore, a kunci pribadi, dan masukkan sandi untuk keduanya. Jika tidak, buat kunci dan keystore terlebih dahulu lalu tampilkan untuk melengkapi langkah ini.

    Catatan: Jika menggunakan Penandatanganan Aplikasi oleh Google Play, Anda harus menetapkan kunci upload di sini. Jika mengelola kunci penandatanganan aplikasi dan keystore sendiri, Anda harus menetapkan kunci penandatanganan aplikasi. Untuk informasi selengkapnya, lihat Mengelola kunci Anda di atas.

    Gambar 4. Memilih kunci pribadi di Android Studio.

  5. Jika Anda membuat app bundle, Anda bisa memberi tahu Android Studio untuk juga menyimpan kunci penandatangan sebagai file dienkripsi dengan mencentang kotak di samping Mengekspor kunci dienkripsi. Agar dapat mengupload app bundle dan memanfaatkan Pengiriman Dinamis, Anda perlu mengupload file dienkripsi ini ke Konsol Play dan mendaftar di Penandatanganan Aplikasi oleh Google Play.
  6. Klik Berikutnya.
  7. Pada jendela berikutnya, pilih tujuan untuk APK bertandatangan atau app bundle, pilih tipe build, pilih ragam produk jika berlaku, dan klik Selesai.

    Gambar 5. Membuat versi bertandatangan dari aplikasi Anda untuk ragam produk yang dipilih.

    Catatan: Jika project Anda menggunakan beberapa ragam produk, Anda bisa memilih beberapa ragam produk sambil menahan tombol Control di Windows/Linux, atau tombol Command di Mac OSX. Android Studio akan menghasilkan APK atau app bundle terpisah untuk setiap ragam produk yang Anda pilih.

Setelah Android Studio selesai mem-build aplikasi bertandatangan, Anda bisa menemukan atau menganalisis aplikasi dengan mengklik pilihan yang sesuai di notifikasi pop-up. Jika Anda memilih opsi untuk mengekspor kunci penandatanganan, Anda bisa membukanya langsung dengan mengklik panah dropdown di pojok kanan bawah pop-up untuk memperluasnya dan mengklik Tampilkan File Kunci yang Diekspor, seperti yang ditampilkan pada gambar 6.

Gambar 6. Setelah IDE selesai membuat app bundle bertandatangan, klik link di popup untuk menganalisis atau menemukan app bundle, atau menemukan kunci penandatanganan yang diekspor.

Kini Anda dapat mendistribusikan aplikasi bertandatangan melalui marketplace aplikasi seperti Google Play Store, atau menggunakan mekanisme pilihan Anda. Untuk informasi selengkapnya tentang cara memublikasikan APK bertandatangan ke Google Play Store, lihat Mulai dengan Publikasi. Untuk mempelajari lebih lanjut tentang opsi distribusi lainnya, baca Opsi Distribusi Alternatif.

Agar pengguna berhasil menginstal update ke aplikasi, Anda perlu menandatangani aplikasi dengan sertifikat yang sama selama masa aktif aplikasi Anda. Untuk informasi selengkapnya tentang hal ini dan manfaat lainnya dari menandatangani semua aplikasi dengan kunci yang sama, lihat Pertimbangan Penandatanganan di bawah ini. Untuk informasi selengkapnya tentang mengamankan kunci pribadi dan keystore Anda, lihat Mengamankan kunci Anda, di bawah ini.

Mengonfigurasi proses build untuk menandatangani aplikasi secara otomatis

Di Android Studio, Anda bisa mengonfigurasi project untuk menandatangani versi rilis aplikasi secara otomatis selama proses build dengan membuat konfigurasi penandatanganan dan menetapkannya ke tipe build rilis Anda. Konfigurasi penandatanganan terdiri dari lokasi keystore, sandi keystore, alias kunci, dan sandi kunci. Untuk membuat konfigurasi penandatanganan dan menetapkannya ke tipe build rilis Anda dengan menggunakan Android Studio, lengkapi langkah-langkah berikut:

  1. Di jendela Project, klik kanan pada aplikasi Anda dan klik Buka Setelan Modul.
  2. Di jendela Struktur Project, pada Modul di panel kiri, klik modul yang ingin Anda tandatangani.
  3. Klik tab Penandatanganan, kemudian klik Tambahkan .
  4. Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu), dan masukkan informasi yang diperlukan.

    Gambar 7. Jendela untuk membuat konfigurasi penandatanganan baru.

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

    Gambar 8. Memilih konfigurasi penandatanganan di Android Studio.

  8. Klik OK.

Kini, setiap kali Anda membuat tipe build rilis Anda dengan memilih opsi pada Build > Build Bundle/APK di Android Studio, IDE akan menandatangani aplikasi Anda secara otomatis, menggunakan konfigurasi yang Anda tentukan. Anda bisa menemukan APK atau app bundle bertandatangan dalam direktori build/outputs/ di dalam direktori project untuk modul yang Anda buat.

Jika Anda membuat konfigurasi penandatanganan, informasi penandatanganan disertakan dalam teks biasa di file build Gradle. Jika Anda bekerja dalam tim atau berbagi kode secara publik, Anda harus mengamankan informasi penandatanganan dengan menghapusnya dari file build dan menyimpannya secara terpisah. Anda bisa membaca selengkapnya tentang cara menghapus informasi penandatanganan dari file build di Menghapus Informasi Penandatanganan dari File Build Anda. Untuk informasi selengkapnya tentang mengamankan informasi penandatanganan, baca Mengamankan kunci Anda.

Menandatangani setiap ragam produk secara berbeda

Jika aplikasi Anda menggunakan beberapa ragam produk dan Anda ingin menandatangani setiap ragam secara berbeda, Anda bisa membuat konfigurasi penandatanganan tambahan dan menetapkan menurut ragamnya:

  1. Di jendela Project, klik kanan pada aplikasi Anda dan klik Buka Setelan Modul.
  2. Di jendela Struktur Project, pada Modul di panel kiri, klik modul yang ingin Anda tandatangani.
  3. Klik tab Penandatanganan, kemudian klik Tambahkan .
  4. Pilih file keystore Anda, masukkan nama untuk konfigurasi penandatanganan ini (karena Anda boleh membuat lebih dari satu), dan masukkan informasi yang diperlukan.

    Gambar 9. Jendela untuk membuat konfigurasi penandatanganan baru.

  5. Ulangi langkah 3 dan 4 bila perlu hingga Anda membuat semua konfigurasi penandatanganan.
  6. Klik tab Ragam.
  7. Klik ragam yang ingin Anda konfigurasi, kemudian pilih konfigurasi penandatanganan yang sesuai dari menu drop down Signing Config.

    Gambar 10. Mengonfigurasi setelan penandatanganan menurut ragam produk.

    Ulangi untuk mengonfigurasi ragam produk tambahan.

  8. Klik OK.

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

Menandatangani aplikasi Wear OS

Jika Anda mem-build aplikasi Wear OS, proses penandatanganan aplikasi bisa berbeda dari proses yang dijelaskan pada halaman ini. Lihat informasi tentang memaketkan dan memublikasikan aplikasi Wear OS.

Pertimbangan penandatanganan

Anda harus menandatangani aplikasi Anda dengan sertifikat yang sama selama masa aktif yang diperkirakan. Ada sejumlah alasan mengapa Anda harus melakukannya:

  • Upgrade aplikasi: Bila sistem sedang menginstal update pada aplikasi, aplikasi akan membandingkan sertifikat dalam versi baru dengan sertifikat yang ada dalam versi saat ini. Sistem akan mengizinkan update jika sertifikatnya cocok. Jika menandatangani versi baru dengan sertifikat berbeda, Anda harus menetapkan nama paket yang berbeda ke aplikasi—dalam hal ini, pengguna menginstal versi baru sebagai aplikasi yang sepenuhnya baru.
  • Modularitas aplikasi: Android mengizinkan APK ditandatangani dengan sertifikat yang sama untuk dijalankan dalam proses yang sama, jika aplikasi memintanya, sehingga sistem akan memperlakukannya sebagai aplikasi tunggal. Dengan cara ini Anda bisa menerapkan aplikasi dalam modul, dan pengguna bisa mengupdate setiap modul secara terpisah.
  • Berbagi kode/data melalui izin: Android menyediakan pemberlakuan izin berbasis tanda tangan, sehingga aplikasi bisa mengekspos fungsionalitas ke aplikasi lain yang ditandatangani dengan sertifikat yang ditetapkan. Dengan menandatangani beberapa APK memakai sertifikat yang sama dan menggunakan pemeriksaan izin berbasis tanda tangan, aplikasi Anda bisa berbagi kode dan data secara aman.

Jika Anda berencana untuk mendukung upgrade aplikasi, pastikan kunci penandatanganan aplikasi memiliki masa berlaku yang melebihi masa aktif yang diperkirakan dari sebuah aplikasi. Masa berlaku yang disarankan adalah 25 tahun atau lebih. Bila masa berlaku kunci Anda berakhir, pengguna tidak akan bisa mengupgrade aplikasi Anda ke versi baru dengan lancar.

Jika berencana memublikasikan aplikasi Anda di Google Play, kunci yang digunakan untuk menandatangani aplikasi Anda harus memiliki masa berlaku hingga setelah 22 Oktober 2033. Google Play memberlakukan persyaratan ini untuk memastikan pengguna bisa mengupgrade aplikasi dengan lancar saat versi baru tersedia. Jika Anda menggunakan Penandatanganan Aplikasi Google Play, Google akan memastikan aplikasi Anda ditandatangani dengan benar dan dapat menerima update selama masa aktifnya.

Mengamankan kunci Anda

Jika Anda memilih untuk mengelola dan mengamankan kunci penandatanganan aplikasi dan keystore sendiri (sebagai ganti ikut menggunakan Penandatanganan Aplikasi oleh Google Play), pengamanan kunci penandatanganan aplikasi adalah hal yang sangat penting, baik bagi Anda maupun pengguna. Jika Anda mengizinkan seseorang menggunakan kunci Anda, atau jika Anda membiarkan keystore dan sandi dalam tempat yang tidak aman sehingga pihak ketiga bisa menemukan dan menggunakannya, identitas pengesahan Anda dan kepercayaan pengguna akan rusak.

Catatan: Jika Anda menggunakan Penandatanganan Aplikasi oleh Google Play, kunci penandatanganan aplikasi tetap aman menggunakan infrastruktur Google. Anda harus tetap menyimpan kunci upload sebagaimana dijelaskan di bawah ini. Jika kunci upload rusak, Anda bisa menghubungi Google untuk mencabutnya dan menerima kunci upload baru.

Jika pihak ketiga berhasil mengambil kunci tersebut tanpa seizin atau sepengetahuan Anda, pengguna itu bisa menandatangani dan mendistribusikan aplikasi yang menggantikan aplikasi asli Anda dengan maksud jahat atau merusaknya. Pengguna tersebut juga bisa menandatangani dan mendistribusikan aplikasi dengan identitas Anda untuk menyerang aplikasi lain atau sistem itu sendiri, dan merusak atau mencuri data pengguna.

Kunci pribadi Anda diperlukan untuk menandatangani semua versi aplikasi di masa mendatang. Jika kehilangan atau lupa meletakkan kunci, Anda tidak akan dapat memublikasikan update ke aplikasi yang ada. Anda tidak bisa membuat kembali kunci yang sebelumnya telah dibuat.

Reputasi Anda sebagai entity developer bergantung pada pengamanan Anda terhadap kunci penandatanganan aplikasi secara tepat, setiap waktu, hingga habis masa berlakunya. Inilah beberapa tips untuk menjaga kunci Anda agar tetap aman:

  • Pilih sandi yang aman untuk keystore dan kunci.
  • Jangan berikan atau pinjamkan kunci pribadi Anda, dan jangan biarkan pengguna yang tidak diizinkan mengetahui keystore dan sandi kunci Anda.
  • Simpan file keystore yang berisi kunci pribadi Anda di tempat yang aman dan terlindungi.

Secara umum, jika Anda mengikuti tindakan pencegahan yang semestinya saat membuat, menggunakan, dan menyimpan kunci, maka kunci akan tetap aman.

Menghapus informasi penandatanganan dari file build Anda

Bila Anda membuat konfigurasi penandatanganan, Android Studio akan menambahkan informasi penandatanganan dalam teks biasa ke file build.gradle modul. Jika Anda bekerja dengan tim atau menjadikan kode Anda sebagai sumber terbuka, Anda harus memindahkan informasi sensitif ini dari file build agar dapat diakses dengan mudah oleh orang lain. Caranya, Anda harus membuat file properti terpisah untuk menyimpan informasi aman dan merujuk ke file itu dalam file build Anda seperti berikut:

  1. Buat konfigurasi penandatanganan, dan tetapkan ke satu atau beberapa tipe build. Petunjuk ini beranggapan bahwa Anda telah mengonfigurasi satu konfigurasi penandatanganan bagi tipe build rilis, seperti yang dijelaskan dalam Mengonfigurasi proses build untuk menandatangani aplikasi secara otomatis, 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. Di file build.gradle modul, tambahkan kode untuk memuat file keystore.properties Anda 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 bisa memilih untuk menyimpan file keystore.properties di lokasi lain (misalnya, dalam folder modul bukannya di folder utama untuk project, atau di server build jika Anda menggunakan fitur continuous integration). Dalam hal itu, Anda harus memodifikasi kode di atas untuk melakukan inisialiasi keystorePropertiesFile secara benar dengan menggunakan lokasi file keystore.properties yang sesungguhnya.

  4. Anda bisa merujuk ke properti yang disimpan di keystoreProperties dengan menggunakan sintaks keystoreProperties['propertyName']. Modifikasi blok signingConfigs dari file build.gradle modul Anda untuk mereferensikan informasi penandatanganan yang disimpan di keystoreProperties menggunakan sintaks 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 tipe build rilis telah dipilih.
  6. Pilih opsi di bawah Build > Build Bundle/APK untuk membuat APK atau app bundle dari build rilis Anda. Anda harus melihat output build di direktori build/outputs/ untuk modul Anda.

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

Menandatangani aplikasi Anda dari command line

Anda tidak memerlukan Android Studio untuk menandatangani aplikasi. Anda bisa menandatangani aplikasi dari command line, menggunakan apksigner untuk APK atau jarsigner untuk app bundle, atau mengonfigurasi Gradle untuk menandatanganinya untuk Anda selama proses build. Untuk kedua cara tersebut, Anda harus terlebih dahulu membuat kunci pribadi menggunakan keytool. Misalnya:

keytool -genkey -v -keystore my-release-key.jks
-keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

Catatan: keytool terletak dalam direktori bin/ di JDK. Untuk menemukan JDK dari Android Studio, pilih File > Struktur Project, kemudian klik Lokasi SDK dan Anda akan melihat Lokasi JDK.

Contoh ini meminta sandi Anda untuk keystore dan kunci, dan menyediakan kolom Nama yang Dibedakan untuk kunci Anda. Itu kemudian menghasilkan keystore sebagai file yang bernama my-release-key.jks, menyimpannya di direktori saat ini (Anda bisa memindahkannya ke mana pun Anda mau). Keystore berisi satu kunci yang berlaku selama 10.000 hari.

Kini Anda bisa membuat APK atau app bundle yang belum ditandatangani dan menandatanganinya secara manual, atau mengonfigurasi Gradle untuk menandatangani aplikasi Anda.

Menandatangani aplikasi Anda secara manual dari command line

Jika Anda belum melakukannya, build aplikasi Anda dari command line. Jika ingin menandatangani app bundle dari command line, Anda bisa menggunakan jarsigner. Jika Anda ingin menandatangani APK, Anda harus menggunakan zipalign dan apksigner seperti yang dijelaskan di bawah ini.

  1. Buka command line—dari Android Studio, pilih Tampilan > Tool Windows > Terminal—dan buka direktori di mana APK Anda yang belum ditandatangani terletak.
  2. Menyelaraskan APK yang belum ditandatangani dengan menggunakan zipalign:

    zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
    

    zipalign memastikan bahwa semua data yang tidak dikompresi dimulai dengan penyelarasan byte tertentu secara relatif terhadap awal file, yang dapat mengurangi jumlah RAM yang dikonsumsi oleh sebuah aplikasi.

  3. Menandatangani APK Anda dengan kunci pribadi menggunakan apksigner:

    apksigner sign --ks my-release-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
    

    Contoh ini menghasilkan APK bertanda tangan pada my-app-release.apk setelah menandatanganinya dengan sertifikat dan kunci pribadi yang disimpan dalam satu file KeyStore: my-release-key.jks.

    Fitur apksigner mendukung opsi penandatanganan lain, termasuk penandatanganan file APK menggunakan kunci pribadi dan file sertifikat terpisah, dan penandatanganan APK menggunakan beberapa penanda tangan. Untuk detail selengkapnya, lihat referensi apksigner .

    Catatan: Untuk menggunakan fitur apksigner, Anda harus menginstal Android SDK Build Tools revisi 24.0.3 atau yang lebih tinggi. Anda bisa mengupdate paket ini menggunakan SDK Manager.

  4. Pastikan APK Anda telah ditandatangani:

    apksigner verify my-app-release.apk
    

Mengonfigurasi Gradle untuk menandatangani aplikasi Anda

Buka file build.gradle level modul dan tambahkan blok signingConfigs {} dengan entri untuk storeFile, storePassword, keyAlias dan keyPassword, kemudian teruskan objek tersebut ke properti signingConfig dalam tipe build Anda. Misalnya:

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        release {
            // You need to specify either an absolute path or include the
            // keystore file in the same directory as the build.gradle file.
            storeFile file("my-release-key.jks")
            storePassword "password"
            keyAlias "my-alias"
            keyPassword "password"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            ...
        }
    }
}

Kini, saat Anda membuat aplikasi dari command line dengan menjalankan tugas Gradle, Gradle menandatangani aplikasi Anda (dan menjalankan zipalign) untuk Anda.

Selain itu, karena Anda mengonfigurasi build rilis tersebut dengan kunci penandatanganan, tugas "instal" akan tersedia untuk tipe build itu. Jadi Anda bisa membuat, menyelaraskan, menandatangani, dan menginstal APK rilis pada emulator atau perangkat dengan tugas installRelease.

Aplikasi yang ditandatangani dengan kunci pribadi Anda siap didistribusikan, tetapi Anda sebaiknya membaca terlebih dahulu tentang cara memublikasikan aplikasi dan meninjau checklist peluncuran Google Play.