Automatisierter Prozess:
Verwenden Sie dieses Tool (verwendet den neuen Apksigner von Google):
https://github.com/patrickfav/uber-apk-signer
Haftungsausschluss: Ich bin der Entwickler :)
Manueller Prozess:
Schritt 1: Keystore generieren (nur einmal)
Sie müssen einmal einen Keystore generieren und damit Ihre unsigned
apk signieren . Verwenden Sie das vom JDK bereitgestellte inkeytool
%JAVA_HOME%/bin/
keytool -genkey -v -keystore my.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias app
Schritt 2 oder 4: Zipalign
zipalign
Dies ist ein Tool, das vom Android SDK bereitgestellt wird, z. B. %ANDROID_HOME%/sdk/build-tools/24.0.2/
ein obligatorischer Optimierungsschritt, wenn Sie die Apk in den Play Store hochladen möchten.
zipalign -p 4 my.apk my-aligned.apk
Hinweis: Wenn Sie das alte verwenden jarsigner
, müssen Sie NACH dem Signieren zipalignieren . Wenn Sie die neue apksigner
Methode verwenden, tun Sie dies VOR dem Signieren (verwirrend, ich weiß). Das Aufrufen von zipalign vor apksigner funktioniert einwandfrei, da apksigner die APK-Ausrichtung und -Komprimierung beibehält (im Gegensatz zu jarsigner).
Sie können die Ausrichtung mit überprüfen
zipalign -c 4 my-aligned.apk
Schritt 3: Signieren und überprüfen
Verwenden von Build-Tools 24.0.2 und älter
Verwendung jarsigner
, die wie die keytool, mit der JDK - Distribution kommt gefunden %JAVA_HOME%/bin/
und es verwendet , etwa so:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my.keystore my-app.apk my_alias_name
und kann mit überprüft werden
jarsigner -verify -verbose my_application.apk
Verwenden von Build-Tools 24.0.3 und neuer
Android 7.0 führt das APK-Signaturschema v2 ein, ein neues App-Signaturschema, das schnellere App-Installationszeiten und mehr Schutz vor unbefugten Änderungen an APK-Dateien bietet ( weitere Informationen finden Sie hier und hier ). Aus diesem Grund hat Google einen eigenen apk-Unterzeichner namensapksigner
(duh!) Implementiert. Die Skriptdatei befindet sich in %ANDROID_HOME%/sdk/build-tools/24.0.3/
(die .jar befindet sich im /lib
Unterordner). Verwenden Sie es so
apksigner sign --ks my.keystore my-app.apk --ks-key-alias alias_name
und kann mit überprüft werden
apksigner verify my-app.apk
Die offizielle Dokumentation finden Sie hier.