Wie kann ich eine Android-App lokal mit der Phonegap 3.x-CLI erstellen, die zur Veröffentlichung bereit ist? Ich überprüfe den Ordner bin, der im Verzeichnis platform / android des Projekts generiert wurde, und habe nur .debug-APKs.
Übrigens benutze ich diesen Befehl: phonegap local build android
quelle
<application android:debuggable="true"...
wechseln musste<application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build
In PhoneGap 3.4.0 können Sie anrufen:
Wenn Sie die Datei 'ant.properties' wie folgt im Verzeichnis 'platform / android' eingerichtet haben:
Anschließend werden Sie zur Eingabe Ihres Keystore-Kennworts aufgefordert, und die Ausgabedatei (myapp-release.apk) befindet sich im Verzeichnis 'platform / android / ant-build', das bereits signiert und ausgerichtet und bereit zur Bereitstellung ist.
quelle
ant.properties
inplatforms/android
und hat diese beiden Eigenschaften einfach darin abgelegt. Funktioniert perfekt, danke!In Cordova 6.2.0
Vorherige Antwort:
Laut Cordova 5.0.0
und
./build --release --buildConfig build.json
aus dem Verzeichnis ausführenplatforms/android/cordova/
Der Speicherort der Keystore-Datei ist relativ zu
platforms/android/cordova/
, also in der obigen Konfigurationsdatei.keystore
undbuild.json
befindet sich im selben Verzeichnis.keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
quelle
Nach @ steven-anderson können Sie auch Passwörter in den ant.properties konfigurieren, damit der Prozess vollständig automatisiert werden kann
Wenn Sie also die Plattform \ android \ ant.properties wie folgt eingeben
quelle
Ich habe mich nur viel gewundert, weil ich das gleiche Problem hatte, aber in meiner Installation war der Befehl "cordova" nie verfügbar und "phone gap build android --release" ignorierte einfach die Plattform / android / ant.properties.
Als ich in meinen Plattformfilter schaute, fand ich einen Ordner mit dem Namen "cordova" und darin befand sich eine "build" -Binärdatei, die das Argument --release akzeptierte. Sie fragte mich nach den Schlüsselketten und ich endete mit einem signierten und produktionsbereiten Ordner APK.
Dies wurde in keinem Teil der Telefonlücken-Site dokumentiert und ehrlich gesagt hasse ich jetzt Phonegap :( Es sollte die Dinge einfacher machen, aber alles war nur kompliziert :(
quelle
Diese Schritte funktionieren für Cordova, PhoneGap oder Ionic. Der einzige Unterschied besteht darin, wo immer ein Anruf
cordova
getätigt wird, ihn durchphonegap
oderionic
für Ihr spezielles Szenario zu ersetzen .Führen Sie die folgenden Schritte aus, wenn Sie mit der Entwicklung fertig und bereit für die Bereitstellung sind:
Öffnen Sie ein Befehlszeilenfenster (Terminal unter MacOS und Linux ODER Eingabeaufforderung unter Windows).
Gehen Sie zu / path / to / your / project /, das wir als Project Root bezeichnen würden.
Entfernen Sie im Projektstamm das Plugin "Konsole" aus Ihren Plugins.
Der Befehl lautet:
cordova plugin rm cordova-plugin-console
Verwenden Sie den Befehl cordova build, während Sie sich noch im Projektstamm befinden, um ein APK für die Release-Verteilung zu erstellen.
Der Befehl lautet:
cordova build --release android
Der obige Prozess erstellt eine Datei, die
android-release-unsigned.apk
im Ordner aufgerufen wirdProjectRoot/platforms/android/build/outputs/apk/
Signieren und richten Sie die APK gemäß den Anweisungen unter https://developer.android.com/studio/publish/app-signing.html#signing-manually aus.
Am Ende dieses Schritts kann die APK, die Sie erhalten, in den Play Store hochgeladen werden .
Hinweis: Als Neuling oder Anfänger kann der letzte Schritt etwas verwirrend sein, wie es für mich war. Man kann auf einige Probleme stoßen und einige Fragen dazu haben, was diese Befehle sind und wo sie zu finden sind.
Q1. Was sind Jarsigner und Keytool ?
Antwort: In den Anweisungen zum Signieren der Android-App erfahren Sie genau, worum es bei Jarsigner und Keytool geht, ABER sie sagen Ihnen nicht, wo Sie sie finden können, wenn Sie im Befehlszeilenfenster auf einen Fehler "Befehl nicht gefunden" stoßen .
Wenn Sie also das Java Development Kit (JDK) zu Ihrer PATH- Variablen hinzugefügt haben, funktioniert es einfach, die Befehle wie im Handbuch auszuführen. ABER, wenn Sie es nicht in Ihrem PATH haben, können Sie jederzeit über den Ordner bin Ihrer JDK-Installation darauf zugreifen .
Q2. Wo ist Zipalign ?
Antwort: Es besteht eine hohe Wahrscheinlichkeit, dass der Befehl zipalign nicht gefunden wird und der Fehler 'Befehl nicht gefunden' angezeigt wird . Sie würden wahrscheinlich zipalign googeln und wo finden Sie es?
Das Dienstprogramm zipalign befindet sich im Installationsordner des Android SDK. Unter macOS ist der Standardspeicherort ,
user-name/Library/Android/sdk/
. Wenn Sie in den Ordner über Kopf würden Sie eine Reihe von anderen Ordnern wie findendocs
,platform-tools
,build-tools
,tools
,add-ons
...Öffnen Sie den
build-tools
Ordner.cd build-tools
. Hier gibt es eine Reihe von Ordnern, die gemäß der Build-Toolkette, die Sie im Android SDK-Manager verwenden, versioniert sind. ZipAlignist in jedem dieser Ordner verfügbar. Ich persönlich suche den Ordner mit der neuesten Version. Öffnen Sie Any.Unter MacOS oder Linux müssen Sie möglicherweise
./zipalign
nicht nur eingeben,zipalign
wie in der Dokumentation erwähnt. Unter Windowszipalign
ist das gut genug.quelle
Ich habe dies zum Laufen gebracht, indem ich die signierte App in das gleiche Verzeichnis wie zipalign kopiert und eingefügt habe. Es scheint, dass aapt.exe die Quelldatei nicht finden konnte, selbst wenn der Pfad angegeben wurde. dh dies funktionierte nicht zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk erreichte aapt.exeCordovaApp-release-unsigned.apk, erstarrte und traf auf return 'aapt.exeCordovaApp-release-unsigned.apk' wird nicht als interner oder externer Befehl, bedienbares Programm oder Batchdatei erkannt. Und dies tat zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
quelle
Ich weiß, dass diese Frage speziell nach Phonegap 3.X fragt, aber nur als Referenz verwendet jede Phonegap-Version über 4.0.0 Gradle anstelle von Ant , um standardmäßig zu erstellen. Um Ant anstelle von Gradle zu verwenden, können Sie dies zu Ihrer config.xml hinzufügen:
Bei Verwendung von Gradle müssen die Keystore-Signaturinformationen jetzt an einem neuen Speicherort abgelegt werden ( wie in diesem Beitrag beschrieben ). Erstellen Sie eine neue Datei mit dem Namen " release-signing.properties " im selben Ordner wie die Datei "build.gradle" und fügen Sie sie in den folgenden Inhalt ein:
quelle
Sie können diesen Befehl ausprobieren. Er sollte die App erstellen und ausführen (daher sollte .apk erstellt werden):
phonegap local run android
quelle