Ich versuche meine apk Datei zu signieren. Ich kann nicht herausfinden, wie es geht. Ich kann keine guten Anweisungen finden. Ich habe sehr wenig Programmiererfahrung, daher wäre jede Hilfe dankbar.
Okay, eine kleine Übersicht ohne Referenz oder Finsternis, lassen Sie also etwas Platz für Fehler, aber es funktioniert so
Öffnen Sie Ihr Projekt in Eclipse
Drücken Sie die rechte Maustaste -> Tools (Android Tools?) -> signierte Anwendung exportieren (apk?)
Gehen Sie durch den Assistenten:
Erstellen Sie einen neuen Schlüsselspeicher. Merke dir dieses Passwort
Unterschreibe deine App
Speichern Sie es usw.
Auch vom Link:
Kompilieren und signieren Sie mit Eclipse ADT
Wenn Sie Eclipse mit dem ADT-Plugin verwenden, können Sie mit dem Export-Assistenten eine signierte APK-Datei exportieren (und bei Bedarf sogar einen neuen Schlüsselspeicher erstellen). Der Export-Assistent führt die gesamte Interaktion mit dem Keytool und dem Jarsigner für Sie aus. Auf diese Weise können Sie das Paket über eine grafische Benutzeroberfläche signieren, anstatt die oben beschriebenen manuellen Verfahren zum Kompilieren, Signieren und Ausrichten auszuführen. Sobald der Assistent Ihr Paket kompiliert und signiert hat, führt er auch die Paketausrichtung mit zip align aus. Da der Export-Assistent sowohl Keytool als auch Jarsigner verwendet, sollten Sie sicherstellen, dass auf Ihrem Computer auf sie zugegriffen werden kann, wie oben in der Grundeinstellung für das Signieren beschrieben.
So erstellen Sie eine signierte und ausgerichtete APK in Eclipse:
Wählen Sie das Projekt im Paket-Explorer aus und wählen Sie Datei> Exportieren.
Öffnen Sie den Android-Ordner, wählen Sie Android-Anwendung exportieren und klicken Sie auf Weiter.
Der Assistent zum Exportieren von Android-Anwendungen wird jetzt gestartet, der Sie durch den Vorgang des Signierens Ihrer Anwendung führt, einschließlich der Schritte zum Auswählen des privaten Schlüssels, mit dem die APK signiert werden soll (oder zum Erstellen eines neuen Schlüsselspeichers und eines neuen privaten Schlüssels).
Schließen Sie den Export-Assistenten ab, und Ihre Anwendung wird kompiliert, signiert, ausgerichtet und zur Verteilung bereit.
Ich verstehe nicht, wie ich anfangen soll. Ich benutze Eclipse Version: Helios Service Release 1
chriss
2
aber bitte lesen Sie die ganze Sache.
Nanne
1
Was muss ich in der Schlüsselerstellung für den Alias eingeben?
Chris
9
Hast du das Handbuch gelesen? -alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.Es ist nur ein Alias. Ein Name, wenn Sie so wollen. Ich würde "firstkey" vorschlagen :-)
Nanne
1
Entschuldigung, ich verstehe immer noch nicht. Wie würde ich diesen Alias verwenden? Was ist seine Aufgabe?
user462990
37
Hier finden Sie eine Anleitung zum manuellen Signieren einer APK. Es enthält Informationen zu den neu apk-signereingeführten in build-tools 24.0.3(10/2016)
Automatisierter Prozess:
Verwenden Sie dieses Tool (verwendet den neuen Apksigner von Google):
Hinweis: Wenn Sie das alte verwenden jarsigner, müssen Sie NACH dem Signieren zipalignieren . Wenn Sie die neue apksignerMethode 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).
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 ). Deshalb hat Google einen eigenen Apk-Signer namensapksigner (duh!) Implementiert. Die Skriptdatei befindet sich in %ANDROID_HOME%/sdk/build-tools/24.0.3/(die .jar befindet sich im /libUnterordner). Verwenden Sie es so
Führen Sie für Benutzer von IntelliJ IDEA oder Android Studio die folgenden Schritte aus:
* Über das Menü Build/Generate signed APK
* Sie müssen einen Schlüsselspeicherpfad erstellen. Klicken Sie im Dialogfeld auf Create new. Sie erstellen eine JKS-Datei, die Ihre Schlüssel enthält. Ordner auswählen, Passwort definieren. Also dein Keystore ok.
* Erstellen Sie einen neuen Schlüssel für Ihre Anwendung, indem Sie Alias, Schlüsselkennwort, Ihren Namen usw. verwenden.
* Klicken Sie auf Weiter.
* Wählen Sie im Dialogfeld entweder Proguard oder nicht.
Mach dir keine Sorgen ...! Befolgen Sie diese Schritte, um Ihre signierte APK-Datei zu erhalten. Ich war auch darüber besorgt, aber diese Schritte reiten mich von der Frustration ab. Schritte zum Unterzeichnen Ihrer Bewerbung:
Exportieren Sie das nicht signierte Paket:
Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse -> Android Tools -> Nicht signiertes Anwendungspaket exportieren (wie hier exportieren wir unsere GoogleDriveApp.apk auf den Desktop).
Signieren Sie die Anwendung mit Ihrem Keystore und dem Jarsigner-Tool (folgen Sie den nachstehenden Schritten):
Öffnen Sie cmd -> ändern Sie das Verzeichnis, in dem Ihre "jarsigner.exe" vorhanden ist (wie hier in meinem System unter "C: \ Programme \ Java \ jdk1.6.0_17 \ bin").
Sie werden aufgefordert, Ihr Passwort anzugeben: Geben Sie die Passphrase für den Keystore ein: Es wird Ihre apk signieren. Um zu überprüfen, ob die Signatur erfolgreich ist, können Sie Folgendes ausführen:
Wenn Sie Eclipse mit ADT verwenden, ist es einfach, die Datei zu kompilieren, zu signieren, auszurichten und für die Verteilung vorzubereiten. Führen Sie dazu einfach die folgenden Schritte aus.
Datei> Exportieren.
Android-Anwendung exportieren
Durchsuchen -> wählen Sie Ihr Projekt aus
Weiter -> Weiter
Mit diesen Schritten wird Ihr Projekt kompiliert, signiert und per Zip ausgerichtet. Jetzt können Sie Ihr Projekt verteilen oder im Google Play Store hochladen.
Das war genau das, was ich brauchte, war die Verwendung eines neuen Online-Build-Tools und musste meinen vorherigen Keystore verwenden, nicht den neu generierten. Das einzige, was mir fehlte, war ZIP ALIGNing the apk. Wenn also jemand das gleiche Problem hat, gehen Sie hier stackoverflow.com/a/22682132/826194
Larzan
5
APK-Signaturprozess
Führen Sie die folgenden drei Befehle aus, um eine Android APK-Datei manuell zu signieren:
D:\ru\SignedBuilds\MySignedApp>keytool -genkey -v -keystore id.keystore
-aliasMySignedApp-keyalg RSA -keysize 2048-validity 10000Enter keystore password:Re-enter new password:Whatis your first andlast name?[Unknown]:MySignedAppSampleWhatis the name of your organizational unit?[Unknown]:InformationTechnologyWhatis the name of your organization?[Unknown]:MySignedAppDemoWhatis the name of your CityorLocality?[Unknown]:MumbaiWhatis the name of your StateorProvince?[Unknown]:MaharashtraWhatis the two-letter country code forthis unit?[Unknown]: IN
Is CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra, C=IN corr
ect?[no]: y
Generating2,048 bit RSA key pair andself-signed certificate (SHA256withRSA)with a validity of10,000 days
for: CN=MySignedAppDemo, OU=InformationTechnology, O=MySignedAppDemo, L=Mumbai, ST=Maharashtra,
C=IN
Enter key password for<MySignedApp>(RETURN if same as keystore password):Re-enter new password:[Storing id.keystore]
D:\ru\SignedBuilds\MySignedApp>
SCHRITT 2
Sign your app with your private keystore using jarsigner
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id
CMD O / P.
D:\ru\SignedBuilds\MySignedApp>jarsigner -verbose -sigalg SHA1withRSA -
digestalg SHA1 -keystore D:\ru\SignedBuilds\MySignedApp\id.keystore D:\ru\SignedBuilds\MySignedApp\MySignedAppS1-release-unsigned.apk id ---
ect
EnterPassphrasefor keystore:
adding: META-INF/MANIFEST.MF
adding: META-INF/---.SF
adding: META-INF/---.RSA
signing:AndroidManifest.xml
.....
signing: classes.dex
signing: lib/commons-codec-1.6.jar
signing: lib/armeabi/libkonyjsvm.so
jar signed.Warning:No-tsa or-tsacert is provided andthis jar isnot timestamped.Without a timestamp, users may not
be able to validate this jar after the signer certificate's expiration date (2044-02-07) or after an
y future revocation date.
D:\ru\SignedBuilds\MySignedApp>
D:\ru\SignedBuilds\MySignedApp>jarsigner -verify -verbose -certs MySignedAppS1-release-unsigned.apk
s = signature was verified
m = entry is listed in manifest
k = at least one certificate was found in keystore
i = at least one certificate was found in identity scope
jar verified.Warning:This jar contains entries whose certificate chain isnot validated.This jar contains signatures that does not include a timestamp.Without a timestamp, users may not b
e able to validate this jar after the signer certificate's expiration date (2044-02-09) or after any
future revocation date.
D:\ru\SignedBuilds\MySignedApp>
SCHRITT 3
Richten Sie das endgültige APK-Paket mit zipalign aus
Ich bin auf dieses Problem gestoßen und wurde durch Überprüfen der min sdk-Version im Manifest gelöst. Es war auf 15 (ICS) eingestellt, aber auf meinem Telefon lief 10 (Lebkuchen)
Antworten:
Das Handbuch ist klar genug. Bitte geben Sie an, an welchem Teil Sie hängen bleiben, nachdem Sie es durchgearbeitet haben. Ich würde vorschlagen:
https://developer.android.com/studio/publish/app-signing.html
Okay, eine kleine Übersicht ohne Referenz oder Finsternis, lassen Sie also etwas Platz für Fehler, aber es funktioniert so
Auch vom Link:
quelle
-alias <alias_name> An alias for the key. Only the first 8 characters of the alias are used.
Es ist nur ein Alias. Ein Name, wenn Sie so wollen. Ich würde "firstkey" vorschlagen :-)Hier finden Sie eine Anleitung zum manuellen Signieren einer APK. Es enthält Informationen zu den neu
apk-signer
eingeführten inbuild-tools 24.0.3
(10/2016)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/
Schritt 2 oder 4: Zipalign
zipalign
%ANDROID_HOME%/sdk/build-tools/24.0.2/
Dies ist ein Tool, das vom Android SDK bereitgestellt wird, z. B. ein obligatorischer Optimierungsschritt, wenn Sie die Apk in den Play Store hochladen möchten.Hinweis: Wenn Sie das alte verwenden
jarsigner
, müssen Sie NACH dem Signieren zipalignieren . Wenn Sie die neueapksigner
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
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:und kann mit überprüft werden
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 ). Deshalb hat Google einen eigenen Apk-Signer namens
apksigner
(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 sound kann mit überprüft werden
Die offizielle Dokumentation finden Sie hier.
quelle
Führen Sie für Benutzer von IntelliJ IDEA oder Android Studio die folgenden Schritte aus:
* Über das Menü
Build/Generate signed APK
* Sie müssen einen Schlüsselspeicherpfad erstellen. Klicken Sie im Dialogfeld auf
Create new
. Sie erstellen eine JKS-Datei, die Ihre Schlüssel enthält. Ordner auswählen, Passwort definieren. Also dein Keystore ok.* Erstellen Sie einen neuen Schlüssel für Ihre Anwendung, indem Sie Alias, Schlüsselkennwort, Ihren Namen usw. verwenden.
* Klicken Sie auf Weiter.
* Wählen Sie im Dialogfeld entweder Proguard oder nicht.
Ihre signierte APK-Datei ist fertig.
Hilfedatei: https://www.jetbrains.com/idea/webhelp/generate-signed-apk-wizard.html
quelle
Mach dir keine Sorgen ...! Befolgen Sie diese Schritte, um Ihre signierte APK-Datei zu erhalten. Ich war auch darüber besorgt, aber diese Schritte reiten mich von der Frustration ab. Schritte zum Unterzeichnen Ihrer Bewerbung:
Klicken Sie mit der rechten Maustaste auf das Projekt in Eclipse -> Android Tools -> Nicht signiertes Anwendungspaket exportieren (wie hier exportieren wir unsere GoogleDriveApp.apk auf den Desktop).
Signieren Sie die Anwendung mit Ihrem Keystore und dem Jarsigner-Tool (folgen Sie den nachstehenden Schritten):
Öffnen Sie cmd -> ändern Sie das Verzeichnis, in dem Ihre "jarsigner.exe" vorhanden ist (wie hier in meinem System unter "C: \ Programme \ Java \ jdk1.6.0_17 \ bin").
Geben Sie nun den folgenden Befehl in cmd ein:
Sie werden aufgefordert, Ihr Passwort anzugeben: Geben Sie die Passphrase für den Keystore ein: Es wird Ihre apk signieren. Um zu überprüfen, ob die Signatur erfolgreich ist, können Sie Folgendes ausführen:
Es sollte zurückkommen mit: Glas verifiziert.
Methode 2
Wenn Sie Eclipse mit ADT verwenden, ist es einfach, die Datei zu kompilieren, zu signieren, auszurichten und für die Verteilung vorzubereiten. Führen Sie dazu einfach die folgenden Schritte aus.
Mit diesen Schritten wird Ihr Projekt kompiliert, signiert und per Zip ausgerichtet. Jetzt können Sie Ihr Projekt verteilen oder im Google Play Store hochladen.
quelle
APK-Signaturprozess
Führen Sie die folgenden drei Befehle aus, um eine Android APK-Datei manuell zu signieren:
Generieren Sie eine Keystore-Datei
Signieren Sie Ihre APK-Datei mit
jarsigner
Signierte APK mit dem Zipalign-Tool ausrichten
SCHRITT 1
Generate Keystore file
Beispiel:
Schlüsselspeicherkennwort : yourApp @ 123 Schlüsselkennwort: yourApp @ 123
CMD O / P.
SCHRITT 2
Sign your app with your private keystore using jarsigner
Beispiel
CMD O / P.
Verify that your APK is signed
Beispiel
CMD O / P.
SCHRITT 3
Richten Sie das endgültige APK-Paket mit zipalign aus
Beispiel
CMD O / P.
Verify that your APK is Aligned successfully
Beispiel
CMD O / P.
Hinweis:
Der Befehl verify dient nur dazu, zu überprüfen, ob APK korrekt erstellt und signiert wurde!
Verweise
Ich hoffe das wird allen helfen :)
quelle
Ich bin auf dieses Problem gestoßen und wurde durch Überprüfen der min sdk-Version im Manifest gelöst. Es war auf 15 (ICS) eingestellt, aber auf meinem Telefon lief 10 (Lebkuchen)
quelle