Подписващ APK

Подписване на APK онлайн — Как да подписвате APK файлове безплатно

Пълно ръководство за Подписващ APK — научете как да подписвайте APK файлове с помощта на apksigner, jarsigner или хранилище за ключове за отстраняване на грешки. Безплатен Урок за подписване на APK стъпка по стъпка за разработчици и тестери. Подпишете APK без Android Studio.

Защо APK файловете трябва да бъдат подписани?

Всяко приложение за Android трябва да бъде цифрово подписано, преди да може да бъде инсталирано. Подписът служи за няколко цели:

  • Потвърждава самоличността на разработчика на приложението
  • Гарантира, че APK не е бил манипулиран
  • Позволява на Android да сравнява актуализациите на приложението с оригинала
  • Изисква се за инсталиране на всички Android устройства

Изисква се инструмент за настолен компютър

Подписването на APK изисква инструменти от командния ред (JDK / Android SDK). Това не може да се направи в уеб браузър. Следвайте ръководството по-долу, за да подписвате APK файлове на вашия компютър.

Метод 1: Подпишете с apksigner (препоръчително)

apksigner е официалният инструмент на Google за подписване на APK, включен в инструментите за изграждане на Android SDK.

Стъпка 1: Генерирайте хранилище за ключове

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

Стъпка 2: Подпишете APK

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

Стъпка 3: Проверете подписа

apksigner verify --verbose signed-app.apk

Метод 2: Подпишете с jarsigner (Legacy)

# 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

Стъпка 4: Zipalign (Важно!)

След подписване оптимизирайте APK с zipalign:

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

Подписване на отстраняване на грешки (за тестване)

За тестови цели можете да използвате хранилището за ключове за отстраняване на грешки в Android по подразбиране:

# 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

Сравнение на инструментите за подписване

Показателapksignerjarsigner
Подпис V1
Подпис V2
Подпис V3
Препоръчва сеНаследство

Подписващ APK — Често задавани въпроси

Често срещани въпроси относно подписването на APK, хранилищата за ключове и подписването на код на Android

За подпишете APK файл се нуждаете от apksigner (препоръчително) или jarsigner: (1) Генерирайте хранилище за ключове с keytool -genkey, (2) Подпишете APK с apksigner sign --ks my-key.jks --out signed.apk unsigned.apk, (3) Проверете подписа с apksigner verify signed.apk. Можете също да използвате хранилището за ключове за отстраняване на грешки на Android за тестови цели. Това е стандартният начин за подпишете APK без Android Studio.

Въпреки че не можете да подпишете APK онлайн сигурно (тъй като подписването на APK изисква вашето лично хранилище за ключове, което никога не трябва да се качва на сървър), можете да използвате нашия безплатен Ръководство за подписване на APK, за да подписвате APK файлове на вашата локална машина. Нашият урок стъпка по стъпка ви превежда през целия процес с помощта на официалните инструменти на Google apksigner и jarsigner. След като подпишете, използвайте нашия Проверка на подпис на APK, за да проверите подписа онлайн безплатно.

V1 (JAR подписване): Оригиналната схема за подписване на Android. Проверява всеки ZIP запис поотделно. По-бавен, но широко съвместим с всички версии на Android. V2 (схема за подпис на APK): Въведен в Android 7.0. Проверява целия APK като цяло, осигурявайки по-бърза инсталация. V3 (схема за подпис на APK v3): Android 9.0+, поддържа ротация на клавишите. V4: Android 11.0+, позволява поточно инсталиране. Използвайте apksigner за поддръжка на всички схеми; jarsigner поддържа само V1.

До подпишете APK без Android Studio: (1) Инсталирайте Java JDK 8 или по-нова версия, (2) Изтеглете Android SDK Build Tools, който включва apksigner, или изтеглете самостоятелния пакетен инструмент, (3) Генерирайте хранилище за ключове: keytool -genkey -v -keystore my-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias, (4) Подпишете: apksigner sign --ks my-key.jks --out signed.apk app.apk. Този метод работи на Windows, Mac и Linux, без да изисква пълната инсталация на Android Studio.

zipalign е Android SDK инструмент, който подравнява некомпресирани данни в APK на 4-байтови граници. Тази оптимизация намалява потреблението на RAM, когато приложението работи на устройство. Важно: Ако използвате apksigner, стартирайте zipalign ПРЕДИ подписването. Ако използвате jarsigner (наследено), стартирайте zipalign СЛЕД подписването. Команда: zipalign -v 4 input.apk output.apk. Google Play изисква APK файловете да бъдат архивирани за изпращане.

Защо редът на подравняване (zipalign Преди apksigner) има значение за Android 11–15

Една от най-честите грешки, които разработчиците и модераторите допускат, когато подписват модифициран или обединен APK, е да стартират zipalign след, подписвайки пакета - или използвайки наследената помощна програма jarsigner на Java вместо apksigner на Google за Android SDK. Тъй като схемата за подписване на APK v2 и v3 изчислява криптографски хеш върху цялото двоично оформление на ZIP архива, модифицирането на отместванията в байтовете с zipalign след подписване незабавно обезсилва блока за подпис v2/v3.

Започвайки с Android 11 (API ниво 30) и наложено стриктно на Android 14 и 15, PackageManager изисква две неподлежащи на обсъждане условия за всеки APK, насочен към съвременни нива на SDK:

  • Некомпресиран 4-байтов подравнен resources.arsc: Компилираната таблица с ресурси (resources.arsc) трябва да се съхранява некомпресирана (STORED) и подравнена на 4-байтова граница, така че Android да може да я картографира в паметта (mmap) директно, без да я копира в RAM. Винаги изпълнявайте zipalign -p -f -v 4 input.apk aligned.apk преди подписване.
  • Задължителен блок за подпис v2+: Подписването на APK, насочен към API 30+ с jarsigner (което записва само v1 META-INF/ подпис) ще накара Android 11–15 да отхвърли инсталацията с INSTALL_PARSE_FAILED_NO_CERTIFICATES. Използвайте генератора на интерактивни команди по-горе, за да изградите точната команда apksigner --v2-signing-enabled=true за вашето хранилище за ключове или проверете вашия подписан изход в нашия Проверка на подпис на APK.
Проектиран и документиран от Mst Shaefale Водещ разработчик и архитект на пакети за Android • Проверен на Android 12–15

Всяка помощна програма в инструментариума от XAPK към APK работи 100% локално във вашия браузър чрез JavaScript и WebAssembly. Намерихте edge case с конкретен пакет? Докладвайте го на нашия инженерен екип.