Proses Otomatis:
Gunakan alat ini (menggunakan apksigner baru dari Google):
https://github.com/patrickfav/uber-apk-signer
Penafian: Saya pengembang :)
Proses Manual:
Langkah 1: Buat Keystore (hanya sekali)
Anda perlu membuat keystore sekali dan menggunakannya untuk menandatangani unsigned
apk . Gunakan yang disediakan oleh JDK yang ada dikeytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
Langkah 2 atau 4: Zipalign
zipalign
yang merupakan alat yang disediakan oleh Android SDK misalnya, %ANDROID_HOME%/sdk/build-tools/24.0.2/
merupakan langkah pengoptimalan wajib jika Anda ingin mengunggah apk ke Play Store.
zipalign -p 4 my.apk my-aligned.apk
Catatan: saat menggunakan yang lama jarsigner
Anda perlu zipalign SETELAH penandatanganan. Saat menggunakan yang baruapksigner
metode Anda melakukannya SEBELUM penandatanganan (membingungkan, saya tahu). Memanggil zipalign sebelum apksigner berfungsi dengan baik karena apksigner mempertahankan penyelarasan dan kompresi APK (tidak seperti jarsigner).
Kamu bisa memverifikasi keselarasan dengan
zipalign -c 4 my-aligned.apk
Langkah 3: Tanda Tangan & Verifikasi
Menggunakan alat build 24.0.2 dan yang lebih lama
Gunakan jarsigner
yang, seperti keytool, hadir dengan distribusi JDK yang ditemukan di %JAVA_HOME%/bin/
dan menggunakannya seperti ini:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
dan dapat diverifikasi dengan
jarsigner -verify -verbose my_application.apk
Menggunakan alat build 24.0.3 dan yang lebih baru
Android 7.0 memperkenalkan APK Signature Scheme v2, skema penandatanganan aplikasi baru yang menawarkan waktu penginstalan aplikasi lebih cepat dan lebih banyak perlindungan terhadap perubahan tidak sah pada file APK (Lihat di sini dan di sini untuk detail selengkapnya). Oleh karena itu, Google menerapkan penandatangan apkapksigner
mereka sendiri yang disebut (duh!) File skrip dapat ditemukan di %ANDROID_HOME%/sdk/build-tools/24.0.3/
(.jar ada di /lib
subfolder). Gunakan seperti ini
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
dan dapat diverifikasi dengan
apksigner verify my-app.apk
Dokumentasi resmi dapat ditemukan di sini.