Ich habe eine Beispielanwendung mit dem Namen gemacht checkStatus
. Jetzt möchte ich eine signierte APK-Datei erstellen. So kann ich es für meine Tests auf verschiedenen Geräten installieren.
Dafür habe ich gegoogelt und diese Dokumentation gefunden .
Gemäß dem Dokument habe ich in mein Projektverzeichnis gewechselt und den folgenden Befehl ausgeführt:
keytool -genkey -v -keystore key-name.keystore -alias alias-name -keyalg RSA -keysize 2048 -validity 10000
Nachdem ich den obigen Befehl ausgeführt habe, habe ich eine Datei mit dem Namen key-name.keystore
at erhalten projectRoot/key-name.keystore
.
Und dann habe ich diese Datei kopiert projectRoot/platforms/android/key-name.keystore
.
Danach habe ich eine Datei mit dem Namen erstellt ant.properties
und in gespeichert projectRoot/platforms/android
.
Ich habe den folgenden Code in die Datei geschrieben:
key.store=projectRoot/key-name.keystore
key.alias=myApp
Danach habe ich den folgenden Befehl ausgeführt, um ihn freizugeben
Cordova builds android --release
Es wird der folgende Fehler ausgegeben:
/home/projectRoot/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: release,-f,/home/projectRoot/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /home/projectRoot/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
Dieses Mal habe ich den key.store
Wert in der ant.properties
Datei wie folgt geändert .
key.store=/home/projectRoot/platforms/android/key-name.keystore
Wieder führte ich den cordova build android --release
Befehl aus. Es wird der gleiche Fehler ausgegeben.
Kann mir jemand sagen, was ich falsch gemacht habe?
Antworten:
Schritt 1:
Fügen Sie das hinzu
--save
, damit das Plugin aus derconfig.xml
Datei entfernt wird.Schritt 2:
Um einen Release-Build für Android zu generieren, müssen wir zunächst eine kleine Änderung an der
AndroidManifest.xml
Datei vornehmen, die sich auf Plattformen / Android befindet. Bearbeiten Sie die Datei und ändern Sie die Zeile:und wechseln
android:debuggable
zufalse
:Ab Cordova 6.2.0 entfernen Sie das android: debuggable Tag vollständig. Hier ist die Erklärung von Cordova:
Wenn Sie andererseits einen bestimmten Wert in der Manifestdatei angeben, wird dieser von den Tools immer verwendet. Dies kann dazu führen, dass Ihre App versehentlich mit Debug-Informationen veröffentlicht wird.
Schritt 3:
Jetzt können wir Cordova anweisen, unseren Release-Build zu generieren:
Dann finden wir unsere nicht signierte APK-Datei in
platforms/android/ant-build
. In unserem Beispiel war die Dateiplatforms/android/ant-build/Example-release-unsigned.apk
Schritt 4:
Hinweis: Wir haben unseren Keystore
keystoreNAME-mobileapps.keystore
in diesem Git Repo. Wenn Sie einen anderen erstellen möchten, fahren Sie bitte mit den folgenden Schritten fort.Schlüsselgenerierung:
Syntax:
Egs:
Dann wurde der Schlüsselspeicher mit dem Namen NAME-mobileapps.keystore generiert
Schritt 5:
Platzieren Sie den generierten Schlüsselspeicher in
alte Version Cordova
Neue Version Cordova
Führen Sie zum Signieren des nicht signierten APK das Jarsigner-Tool aus, das auch im JDK enthalten ist:
Syntax:
Egs:
ODER
Dies kennzeichnet die apk an Ort und Stelle.
Schritt 6:
Schließlich müssen wir das Zip-Align-Tool ausführen, um die APK zu optimieren:
ODER
ODER
Jetzt haben wir unsere endgültige Binärversion namens example.apk und können diese im Google Play Store veröffentlichen.
quelle
-tsa timestamp.digicert.com
eine NullPointerException für mich ausgelöst.-tsa http://timestamp.digicert.com
scheint es zu behebenEin Update auf @malcubierre für Cordova 4 (und höher) -
Erstellen Sie eine Datei mit dem Namen
release-signing.properties
und fügen Sie sie einAPPFOLDER\platforms\android
Ordner abInhalt der Datei: edit after = für alle außer der 2. Zeile
Dann sollte dieser Befehl eine Release-Version erstellen:
quelle
build-extras.gradle
Datei angeben . Relevantes Cordova-Dokument hier .In der aktuellen Dokumentation können wir eine build.json mit dem Keystore angeben:
Führen Sie dann das Kommando mit --buildConfig argumente folgendermaßen aus:
quelle
Schritt 1:
Gehen Sie zu
cordova\platforms\android
ant und erstellen Sie eineant.properties
Datei namens file mit den Informationen zur Keystore-Datei (dieser Keystore kann aus Ihrem bevorzugten Android SDK, Studio ... generiert werden):Schritt 2:
Gehen Sie zum Cordova-Pfad und führen Sie Folgendes aus:
Hinweis: Sie werden aufgefordert, Ihren Schlüsselspeicher und Ihr Schlüsselkennwort einzugeben
Eine YourApp-release.apk wird in angezeigt
\cordova\platforms\android\ant-build
quelle
In Cordova 6.2.0 ist es einfach, Release Builds zu erstellen. Weitere Schritte finden Sie hier. Schritte 1, 2 und 4
quelle
The system cannot find the file specified
erhalte eine Fehlermeldung bei der Verwendung von Cordova 6.2.0cordova build android --release -- --keystore="C:\release.keystore" --storePassword=****** --alias=mr5
"
(doppeltes Anführungszeichen) versehen hatte, begann es zu laufen. Ich denke, Cordova hat ein Problem mit dem Parsen von Sonderzeichen.Unter Mac (osx) habe ich zwei .sh-Dateien generiert, eine für die erste Veröffentlichung und eine für die Aktualisierung:
Und um Ihre App zu aktualisieren:
Angenommen, Sie befinden sich in Ihrem Home-Ordner oder in einem Ordner, der Ihre Apps-Ordner übersteigt. Stellen Sie sicher, dass chmod richtig eingestellt ist, um dieses Skript zu verwenden. Dann :
Ihr signiertes apk befindet sich in Ihrem App-Ordner / platform / android / build / output / apk / als SignedApk.apk. Stellen Sie sicher, dass Sie den richtigen Schlüsselalias und das richtige Kennwort verwenden, die mit dem ersten Skript definiert wurden
quelle
Erstellen Sie die Cordova Release APK-Datei in cmd.
KEY STORE FILE PATH : Pfad der Keystore-Datei (F: /cordova/myApp/xxxxx.jks)
KEY STORE PASSWORT : xxxxx
KEY STORE ALIAS : xxxxx
KEY STORE ALIAS PASSWORT : xxxxx
PFAD VON zipalign.exe : Dateipfad zipalign.exe (C: \ Benutzer \ xxxx \ AppData \ Local \ Android \ sdk \ build-tools \ 25.0.2 \ zipalign)
ANDROID UNSIGNED APK NAME : android-release-unsigned.apk
ANDROID RELEASE APK NAME : android-release.apk
Führen Sie die folgenden Schritte in cmd aus (als Administrator ausführen).
quelle
quelle
Überprüfen Sie zuerst Ihren Versionscode und den Versionsnamen, wenn Sie Ihre App aktualisieren. Und stellen Sie sicher, dass Sie einen vorherigen Schlüsselspeicher haben.
Wenn Sie die App aktualisieren, befolgen Sie Schritt 1,3,4.
Schritt 1:
Gehen Sie zu Ihrem Cordova-Projekt, um unseren Release-Build zu generieren:
Dann finden wir unsere nicht signierte APK-Datei unter platform / android / ant-build. In unserem Beispiel war die Datei
Wenn du Ant-Build benutzt hast
ODER
Wenn du Gradle-Build benutzt hast
Schritt 2:
Schlüsselgenerierung:
Syntax:
Wenn der Befehl keytool nicht erkannt wird, führen Sie diesen Schritt aus
Überprüfen Sie, ob sich das Verzeichnis, in dem sich die ausführbare Keytool-Datei befindet, auf Ihrem Pfad befindet. (Auf meinem Windows 7-Computer befindet es sich beispielsweise in C: \ Programme (x86) \ Java \ jre6 \ bin.)
Beispiel:
Dann wurde der Schlüsselspeicher mit dem Namen NAME-mobileapps.keystore generiert
Schritt 3:
Platzieren Sie den generierten Schlüsselspeicher in D: \ projects \ Phonegap \ Example \ platform \ android \ ant-build
Führen Sie zum Signieren des nicht signierten APK das Jarsigner-Tool aus, das auch im JDK enthalten ist:
Syntax:
Wenn dies nicht der Fall ist, führen Sie diese Schritte aus
(1) Klicken Sie mit der rechten Maustaste auf "Dieser PC"> klicken Sie mit der rechten Maustaste auf Eigenschaften> Erweiterte Systemeinstellungen> Umgebungsvariablen> wählen Sie PATH und dann EDIT.
(2) Fügen Sie Ihren jdk bin-Ordnerpfad zu Umgebungsvariablen hinzu. Er sollte folgendermaßen aussehen:
"C: \ Programme \ Java \ jdk1.8.0_40 \ bin".
Beispiel:
Dies kennzeichnet die apk an Ort und Stelle.
Schritt 4:
Schließlich müssen wir das Zip-Align-Tool ausführen, um die APK zu optimieren:
wenn zipalign dann nicht erkennt
(1) Gehen Sie zu Ihrem Android SDK-Pfad und finden Sie Zipalign, das sich normalerweise in Android-SDK \ Build-Tools \ 23.0.3 befindet
(2) Kopieren Sie die zipalign-Datei und fügen Sie sie in Ihren apk-Ordner "generate release" ein, normalerweise im folgenden Pfad
Ihr Projekt / platform / android / ant-build / Example-release-unsigned.apk
ODER
Jetzt haben wir unsere endgültige Binärversion namens example.apk und können diese im Google Play Store veröffentlichen.
quelle
Für Windows habe ich eine
build.cmd
Datei erstellt:(Ersetzen Sie den Keystore-Pfad und den Alias.)
Für Cordova:
Und für Ionic:
Speichern Sie es im Verzeichnis des ptoject. Sie können darauf doppelklicken oder es mit cmd öffnen.
quelle