Penandatangan APK

Penandatangan APK Dalam Talian — Cara Menandatangani Fail APK Percuma

Panduan lengkap Penandatangan APK — pelajari cara menandatangani fail APK menggunakan apksigner, jarsigner atau nyahpepijat stor kunci. Tutorial menandatangani APK langkah demi langkah percuma untuk pembangun dan penguji. Tandatangani APK tanpa Android Studio.

Mengapa Fail APK Perlu Ditandatangani?

Setiap apl Android mesti ditandatangani secara digital sebelum ia boleh dipasang. Tandatangan mempunyai beberapa tujuan:

  • Mengesahkan identiti pembangun apl
  • Memastikan APK tidak diusik
  • Membenarkan Android memadankan kemas kini apl dengan yang asal
  • Diperlukan untuk memasang pada semua peranti Android

Alat Desktop Diperlukan

Tandatangan APK memerlukan alatan baris perintah (JDK / Android SDK). Ini tidak boleh dilakukan dalam pelayar web. Ikuti panduan di bawah untuk menandatangani APK pada komputer anda.

Kaedah 1: Tandatangan dengan apksigner (Disyorkan)

apksigner ialah alat tandatangan APK rasmi Google, disertakan dalam Alat Binaan SDK Android.

Langkah 1: Hasilkan Kedai Kunci

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

Langkah 2: Tandatangani APK

apksigner sign --ks my-release-key.jks \
  --ks-key-alias my-key-alias \
  --out signed-app.apk unsigned-app.apk

Langkah 3: Sahkan Tandatangan

apksigner verify --verbose signed-app.apk

Kaedah 2: Tandatangani dengan jarsigner (Legasi)

# Sign
jarsigner -verbose -sigalg SHA256withRSA \
  -digestalg SHA-256 \
  -keystore my-release-key.jks \
  app-unsigned.apk my-key-alias

# Verify
jarsigner -verify -verbose app-signed.apk

Langkah 4: Zipalign (Penting!)

Selepas menandatangani, optimumkan APK dengan zipalign:

zipalign -v 4 signed-app.apk aligned-app.apk

Tandatangan Nyahpepijat (Untuk Ujian)

Untuk tujuan ujian, anda boleh menggunakan stor kunci nyahpepijat Android lalai:

# Location of debug keystore:
# Linux/Mac: ~/.android/debug.keystore
# Windows: C:\Users\{USERNAME}\.android\debug.keystore

# Sign with debug key
apksigner sign --ks ~/.android/debug.keystore \
  --ks-key-alias androiddebugkey \
  --ks-pass pass:android \
  app.apk

Perbandingan Alat Menandatangani

Metrikapksignerjarsigner
Tandatangan V1
Tandatangan V2
Tandatangan V3
DisyorkanLegasi

Penandatangan APK — Soalan Lazim

Soalan lazim tentang tandatangan APK, kedai kunci dan tandatangan kod Android

Untuk menandatangani fail APK, anda memerlukan apksigner (disyorkan) atau jarsigner: (1) Jana stor kunci menggunakan keytool -genkey, (2) Tandatangani APK dengan apksigner sign --ks my-key.jks --out signed.apk unsigned.apk, (3) Sahkan tandatangan dengan apksigner verify signed.apk. Anda juga boleh menggunakan stor kunci nyahpepijat Android untuk tujuan ujian. Ini ialah cara standard untuk menandatangani APK tanpa Android Studio.

Walaupun anda tidak boleh menandatangani APK dalam talian dengan selamat (kerana tandatangan APK memerlukan stor kunci peribadi anda yang tidak boleh dimuat naik ke mana-mana pelayan), anda boleh menggunakan Panduan penandatangan APK percuma kami untuk menandatangani fail APK pada mesin setempat anda. Tutorial langkah demi langkah kami membimbing anda melalui keseluruhan proses menggunakan alat apksigner dan jarsigner rasmi Google. Selepas menandatangani, gunakan Pengesah Tandatangan APK kami untuk mengesahkan tandatangan dalam talian secara percuma.

V1 (Tandatangan JAR): Skim tandatangan Android asal. Mengesahkan setiap entri ZIP secara individu. Lebih perlahan tetapi serasi secara meluas dengan semua versi Android. V2 (Skim Tandatangan APK): Diperkenalkan dalam Android 7.0. Mengesahkan keseluruhan APK secara keseluruhan, memberikan pemasangan yang lebih pantas. V3 (Skim Tandatangan APK v3): Android 9.0+, menyokong putaran kekunci. V4: Android 11.0+, mendayakan pemasangan penstriman. Gunakan apksigner untuk menyokong semua skim; jarsigner hanya menyokong V1.

Untuk menandatangani APK tanpa Android Studio: (1) Pasang Java JDK 8 atau lebih tinggi, (2) Muat turun Alat Binaan SDK Android yang termasuk apksigner, atau muat turun alat yang dibundel kendiri, (3) Jana stor kunci: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias, (4) Tanda: apksigner sign --ks my-key.jks --out signed.apk app.apk. Kaedah ini berfungsi pada Windows, Mac dan Linux tanpa memerlukan pemasangan Android Studio penuh.

zipalign ialah alat Android SDK yang menjajarkan data tidak dimampatkan dalam APK pada sempadan 4 bait. Pengoptimuman ini mengurangkan penggunaan RAM apabila apl dijalankan pada peranti. Penting: Jika menggunakan apksigner, jalankan zipalign SEBELUM menandatangani. Jika menggunakan jarsigner (warisan), jalankan zipalign SELEPAS menandatangani. Perintah: zipalign -v 4 input.apk output.apk. Google Play memerlukan APK untuk diselaraskan dengan zip untuk penyerahan.

Mengapa Pesanan Penjajaran (zipalign Sebelum apksigner) Penting pada Android 11–15

Salah satu kesilapan yang paling kerap dilakukan oleh pembangun dan pengubah semasa menandatangani APK yang diubah suai atau digabungkan sedang menjalankan zipalign selepas menandatangani pakej—atau menggunakan utiliti jarsigner warisan Java dan bukannya Android SDK apksigner Google. Oleh kerana Skim Tandatangan APK v2 dan v3 mengira cincangan kriptografi ke atas keseluruhan reka letak binari arkib ZIP, mengubah suai offset bait dengan zipalign selepas menandatangani serta-merta membatalkan blok tandatangan v2/v3.

Bermula dengan Android 11 (API tahap 30) dan dikuatkuasakan secara ketat pada Android 14 dan 15, PackageManager memerlukan dua syarat tidak boleh dirunding untuk mana-mana APK yang menyasarkan tahap SDK moden:

  • resources.arsc Tidak Dimampatkan Dijajarkan 4-Bait: Jadual sumber terkumpul (resources.arsc) mesti disimpan tidak dimampatkan (STORED) dan diselaraskan pada sempadan 4-bait supaya Android boleh memetakan memori (mmap) terus tanpa menyalinnya ke dalam RAM. Sentiasa laksanakan tandatangan zipalign -p -f -v 4 input.apk aligned.apk sebelum ini.
  • Blok Tandatangan v2+ Mandatori: Menandatangani APK yang menyasarkan API 30+ dengan jarsigner (yang hanya menulis tandatangan v1 META-INF/) akan menyebabkan Android 11–15 menolak pemasangan dengan INSTALL_PARSE_FAILED_NO_CERTIFICATES. Gunakan penjana arahan interaktif di atas untuk membina perintah apksigner --v2-signing-enabled=true yang tepat untuk stor kunci anda, atau sahkan output anda yang ditandatangani dalam Pengesah Tandatangan APK kami.
Kejuruteraan & Didokumentasikan oleh Mst Shaefale Pemaju Utama & Arkitek Pakej Android • Disahkan pada Android 12–15

Setiap utiliti dalam kit alat XAPK ke APK berjalan 100% secara setempat dalam penyemak imbas anda melalui JavaScript dan WebAssembly. Temui sarung tepi dengan pakej tertentu? Laporkan kepada pasukan kejuruteraan kami.