Построить Android релиз apk на Phonegap 3.X CLI

Как я могу создать приложение для android локально с помощью Phonegap 3.x CLI, готов к выпуску? Я проверяю папку bin, созданную внутри каталога platforms / android проекта, и только имеет .отладка APKs.

кстати, я использую эту команду: phonegap local build android

9 ответов


Это для Phonegap 3.0.x-3.3.X. Для PhoneGap 3.4.0 и выше см. ниже.

найдена часть ответа здесь, в документации Phonegap. Полный процесс заключается в следующем:

  1. откройте окно командной строки и перейдите в /path/to/your/project/платформы / android / cordova.

  2. Run build --release. Это создает unsigned релиз APK на /путь/к/проекта/платформы / android / bin папка, называемая YourAppName-release-unsigned.АПК.

  3. подписать и выровнять APK, используя инструкции в Android developer официальные документы.

спасибо @LaurieClark за ссылку (http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and-android-projects/), и блогер, который его публикует, потому что он поставил меня на трассе.


в PhoneGap 3.4.0 вы можете позвонить:

cordova build android --release

Если вы настроили ' ant.файл свойств в каталоге "платформы / android" выглядит следующим образом:

key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp

затем вам будет предложено ввести пароль хранилища ключей и выходной файл (myapp-release.apk) попадает в каталог "платформы/android/ant-build", уже подписанный и выровненный и готовый к развертыванию.


в Кордове 6.2.0

cd cordova/ #change to root cordova folder
platforms/android/cordova/clean #clean if you want
cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any

предыдущий ответ:

согласно cordova 5.0.0

{
     "android": {
         "release": {
             "keystore": "app-release-key.keystore",
             "alias": "alias_name"
         }
     }
 }

и работать ./build --release --buildConfig build.json из каталога platforms/android/cordova/

расположение файла хранилища ключей относительно platforms/android/cordova/, поэтому в вышеуказанной конфигурации .keystore файл и build.json находятся в том же каталоге.

keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


продолжение @steven-anderson вы также можете настроить пароли внутри муравейников.свойства, поэтому процесс может быть полностью автоматизирован

Итак, если вы поместите в platform\android\ant.свойства следующие

key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword

просто задавался вопросом, потому что я получил ту же проблему, но в моей установке команда "cordova" никогда не была доступна, а "phone gap build android --release" просто игнорировала платформу/android/ant.свойства.

поэтому, заглянув в мой фильтр платформы, я нашел папку с именем "cordova" , и внутри нее был двоичный файл" build", который принял аргумент -- release, он попросил меня о цепочках ключей, и я закончил подписанным и готовым к производству АПК.

Это никогда не было задокументировано ни в одной части сайта phone gap, и, честно говоря, теперь я ненавижу phonegap : (это должно было сделать вещи проще, но все было просто сложно : (


Я получил это для работы, скопировав вставку подписанного приложения в том же dir, что и zipalign. Кажется, что aapt.exe не удалось найти исходный файл, даже если указан путь. т. е. это не работа zipalign-f-v 4 C:...\CordovaApp-release-без знака.apk C:...\назначение.apk он достиг апта.exeCordovaApp-release-без подписи.apk, застыл и после нажатия return 'aapt.exeCordovaApp-release-без подписи.АПК' не распознается как внутренней или внешней командой, исполняемой программой или пакетным файлом. И это делавший zipalign-f-v 4 CordovaApp-release-без знака.apk myappname.apk


Я знаю, что этот вопрос задает о Phonegap 3.X конкретно, но только для справки любой версия Phonegap выше 4.0.0 использует Gradle вместо Ant построить по умолчанию. Чтобы использовать Ant вместо Gradle, вы можете добавить это в свою конфигурацию.XML-код:

<preference name="android-build-tool" value="ant" />

при использовании Gradle информация о подписи хранилища ключей теперь должна перейти в новое место (как описано в этом посте). Создайте новый файл под названием 'релиз-подписание.свойства в то же папку как "построить.gradle " файл и поместить внутри следующего содержания:

storeFile=..\..\some-keystore.keystore
storeType=jks
keyAlias=some-key
// if you don't want to enter the password at every build, you can store it with this
keyPassword=your-key-password
storePassword=your-store-password

создание приложения PhoneGap для Android для развертывания в Google Play Store

эти шаги будут работать для Cordova, PhoneGap или Ionic. Единственное различие было бы, где бы призыв cordova помещается, замените его на phonegap или ionic, для вашего конкретного сценария.

как только вы закончите разработку и будете готовы к развертыванию, выполните следующие действия:

  1. откройте окно командной строки (терминала macOS и Linux или командная строка в Windows).

  2. перейдите к /path/to/your/ project/, который мы будем называть корнем проекта.

  3. находясь в корне проекта, удалите плагин "консоль" из вашего набора плагинов.

    команда: cordova plugin rm cordova-plugin-console

  4. находясь в корне проекта, используйте команду Cordova build для создания APK для выпуска распределение.

    команда: cordova build --release android

  5. вышеуказанный процесс создает файл с именем android-release-unsigned.apk в папке ProjectRoot/platforms/android/build/outputs/apk/

  6. подписать и выровнять APK, используя инструкции на https://developer.android.com/studio/publish/app-signing.html#signing-manually

    в конце этого шага APK, который вы получаете, можно загрузить в игру Магазин.

Примечание: как новичок или новичок, прошедший шаг может быть немного запутанным, как это было со мной. Можно столкнуться с несколькими проблемами и могут возникнуть некоторые вопросы о том, что это за команды и где их найти.

Q1. Каковы jarsigner и keytool?
Ans: инструкции по подписанию Android-приложений говорят вам конкретно, что jarsigner и keytool все о, но он не говорит вам, где их найти, если вы столкнетесь с "командой не найдена ошибка" в окне командной строки.

Таким образом, если у вас есть Java Development Kit(JDK), добавленный в ваш путь переменная, просто запуск команд, как в руководстве будет работать. Но, если у вас его нет на вашем пути, вы всегда можете получить к ним доступ из bin папка вашего JDK установка.

Q2. Где zipalign?
Ans: существует высокая вероятность не найти zipalign команда и получить "команда не найдена ошибка". Вы, вероятно, будете гуглить zipalign и где его найти?

The zipalign утилита присутствует в папке установки Android SDK. В macOS расположение по умолчанию:user-name/Library/Android/sdk/. Если ты поедешь ... в папке вы найдете кучу других папок, как docs, platform-tools, build-tools, tools, add-ons...

Откройте


вы можете попробовать эту команду, она должна построить и запустить приложение (так .apk должен быть создан):

phonegap local run android