Как я могу создать приложение для Android локально с помощью интерфейса командной строки Phonegap 3.x, готового к выпуску? Я проверяю папку bin, созданную внутри каталога platform / android проекта, и в ней есть только APK .debug.
Кстати, я использую эту команду: phonegap local build android
источник
<application android:debuggable="true"...
нужно было изменить<application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build
В PhoneGap 3.4.0 вы можете позвонить:
Если вы настроили файл ant.properties в каталоге platform / android, как показано ниже:
Затем вам будет предложено ввести пароль хранилища ключей, а выходной файл (myapp-release.apk) окажется в каталоге «platform / android / ant-build», уже подписанном, согласованном и готовом к развертыванию.
источник
ant.properties
вplatforms/android
и просто бросил эти два свойства в него. Отлично работает, спасибо!В кордове 6.2.0
Предыдущий ответ:
По данным cordova 5.0.0
и запустить
./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 вы также можете настраивать пароли внутри ant.properties, чтобы процесс можно было полностью автоматизировать.
поэтому, если вы поместите в platform \ android \ ant.properties следующее
источник
просто много размышлял, потому что у меня была такая же проблема, но в моей установке команда «cordova» никогда не была доступна, а «phone gap build android --release» просто игнорировал платформу / android / ant.properties.
Итак, заглянув внутрь своего фильтра платформы, я обнаружил папку с именем «cordova» и внутри нее был двоичный файл «build», который принял аргумент --release, он запросил у меня цепочки ключей, и я закончил подписанным и готовым к производству APK.
это никогда не было задокументировано ни в одной части сайта, посвященного разрывам телефонов, и, честно говоря, теперь я ненавижу телефонные разговоры :( Предполагалось, что это упростит задачу, но все было просто сложно :(
источник
Эти шаги подойдут для Cordova, PhoneGap или Ionic. Единственная разница будет заключаться в том, что где бы ни был размещен вызов
cordova
, замените его наphonegap
илиionic
для вашего конкретного сценария.Когда вы закончите разработку и будете готовы к развертыванию, выполните следующие действия:
Откройте окно командной строки (Терминал в macOS и Linux ИЛИ Командная строка в Windows).
Перейдите в / путь / к / вашему / проекту /, который мы будем называть корнем проекта.
Находясь в корне проекта, удалите плагин «Консоль» из своего набора плагинов.
Команда такая:
cordova plugin rm cordova-plugin-console
Находясь в корне проекта, используйте команду cordova build, чтобы создать APK для распространения выпуска.
Команда такая:
cordova build --release android
Вышеупомянутый процесс создает файл с именем
android-release-unsigned.apk
в папкеProjectRoot/platforms/android/build/outputs/apk/
Подпишите и выровняйте APK с помощью инструкций на странице https://developer.android.com/studio/publish/app-signing.html#signing-manually.
В конце этого шага полученный APK можно загрузить в Play Store. .
Примечание: как новичку или новичку, последний шаг может быть немного запутанным, как и меня. Можно столкнуться с несколькими проблемами и у вас могут возникнуть вопросы относительно того, что это за команды и где их найти.
Q1. Что Jarsigner и Keytool ?
Ans: The Android App инструкции Подписание этого вам сказать , что конкретно Jarsigner и Keytool все о НО это не говорит вам , где найти их , если вы столкнетесь с «команда не найдена ошибка» в окне командной строки.
Таким образом, если у вас есть Java Development Kit (JDK), добавленный в вашу переменную PATH , простой запуск команд, как в Руководстве, будет работать. НО, если у вас его нет в вашем PATH, вы всегда можете получить к ним доступ из папки bin вашей установки JDK.
Q2. Где Zipalign ?
Ответ: высока вероятность не найти команду zipalign и получить ошибку «команда не найдена». Вы, наверное, искали бы в Google zipalign и где его найти? Zipalign утилита присутствует в папке установки Android SDK. В macOS расположение по умолчанию - . Если вы над головой в папке вы найдете кучу других папок , как , , , , ... Открыть в папке. . Здесь будет несколько папок, версия которых будет меняться в соответствии с цепочкой инструментов сборки, которую вы используете в Android SDK Manager. ZipAlign
user-name/Library/Android/sdk/
docs
platform-tools
build-tools
tools
add-ons
build-tools
cd build-tools
доступен в каждой из этих папок. Я лично ищу папку с последней версией. Открыть любой.В macOS или Linux вам, возможно, придется использовать,
./zipalign
а не просто вводить,zipalign
как упоминается в документации. В Windowszipalign
достаточно хорошо.источник
Я заставил это работать, скопировав и вставив подписанное приложение в тот же каталог, что и zipalign. Похоже, что aapt.exe не может найти исходный файл, даже если указан путь. т.е. это не сработало zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk он достиг aapt.exeCordovaApp-release-unsigned.apk, завис и после нажатия return 'aapt.exeCordovaApp-release-unsigned.apk' не распознается как внутренняя или внешняя команда, работающая программа или командный файл. И это сделал zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
источник
Я знаю, что этот вопрос касается конкретно Phonegap 3.X, но для справки любая версия Phonegap выше 4.0.0 использует Gradle вместо Ant для сборки по умолчанию. Чтобы использовать Ant вместо Gradle, вы можете добавить это в свой config.xml:
При использовании Gradle информация для подписи хранилища ключей теперь должна перейти в новое место ( как описано в этом сообщении ). Создайте новый файл с именем ' release-signing.properties ' в той же папке, что и файл "build.gradle", и поместите в него следующее содержимое:
источник
Вы можете попробовать эту команду, она должна собрать и запустить приложение (поэтому должен быть создан .apk):
phonegap local run android
источник