Побудуйте версію для Android випуску на Phonegap 3.x CLI


108

Як я можу створити додаток для Android локально за допомогою CLI Phonegap 3.x, готовий до випуску? Я перевіряю папку bin, згенеровану всередині каталогу платформ / андроїдів проекту, і має лише APK-файли .debug.

До речі, я використовую цю команду: phonegap local build android

Відповіді:


153

Це для Phonegap 3.0.x до 3.3.x. Для PhoneGap 3.4.0 і вище див. Нижче .

Частину відповіді ви знайдете тут , у документації Phonegap. Повний процес такий:

  1. Відкрийте вікно командного рядка та перейдіть до / шлях / до / ваш / проект / платформи / android / cordova .

  2. Біжи build --release. Це створює непідписаний APK випуску у / path / to / your / project / platforms / android / bin папці, який називається YourAppName-release-unsigned.apk.

  3. Підпишіть і вирівняйте APK, використовуючи інструкції в офіційних документах для розробників Android .

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


9
Мені довелося вручну змінити мій файл AndroidManifest.xml там, де мені <application android:debuggable="true"...потрібно було змінити<application android:debuggable="false"
Ian Jamieson

3
Ви також повинні зафіксувати річ за допомогою zip: zipalign -v 4 your-unaligned.apk your-align.apk
Damian

13
Я запускаю Кордову 3.4.1-0.1.0, і файл створений в/path/to/your/project/platforms/android/ant-build
AlexStack

1
Здається, що, будучи конкретним, це для phonegap 3.0.x до 3.3.x, від 3.4.x і вперед, це може відрізнятися.
Гільєрмо Гутьеррес

Дуже дякую вам гільєрмо. +1
Quick_Silver

112

У PhoneGap 3.4.0 ви можете зателефонувати:

cordova build android --release

Якщо ви встановили файл "ant.properties" у каталозі "платформи / android", наприклад:

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

Тоді вам буде запропоновано ввести пароль для зберігання ключів, і вихідний файл (myapp-release.apk) опиниться у вже підписаному та вирівняному та вирівняному каталозі платформ / андроїд / мураха та готовий до розгортання.


1
Поточний випуск Cordova 3.4.0 не включає файл "мурашиних властивостей".
SteAp

8
Створений ant.propertiesв platforms/androidі просто кинув ці дві властивості в нього. Працює чудово, дякую!
Адам Таттл

6
Якщо ви не впевнені в сховища ключів / псевдонім або як створити їх повні деталі в developer.android.com/tools/publishing/app-signing.html
Шай

6
Також зауважте, що ви можете вказати властивості key.store.password та key.alias.password у цьому файлі, тому вам не доведеться вводити його щоразу, коли ви створюєте реліз. Звичайно, будьте обережні і не вкладайте цей файл у версійну систему.
vbezhenar

5
Для cordova 5.0.0 і вище створіть build.json у корені вашого проекту та заповніть його {"android": {"release": {"keystore": "/path/to/your.keystore", "alias ":" youalias "}}} замість файлу ant.properties. FYI cordova.apache.org/docs/en/edge/…
artberri

19

В кордові 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/

Розташування файлу keystore є відносном platforms/android/cordova/, тому у наведеному вище .keystoreфайлі конфігурації і build.jsonзнаходяться в одній директорії.

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


15

Після @ steven-anderson ви також можете налаштувати паролі всередині ant.properties, так що процес може бути повністю автоматизований

тому якщо ви помістите в платформу \ android \ ant.properties наступне

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

1
У Windows ви повинні уникати косої риски ... '... key.store = C: \\ OpenSSL-Win32 \\ certs \\ android_key_store.keystore ...'
bkomac

4

просто багато цікавилося, тому що я отримав ту саму проблему, але в моїй установці команда "cordova" ніколи не була доступна, а "телефон розрив андроїд - звільнення" просто ігнорував платформу / android / ant.properties.

тому, заглянувши всередину свого фільтра на платформу, я знайшов папку з назвою "cordova", а всередині неї з'явився двійковий файл "build", який прийняв аргумент --release, він попросив мене в брелоки, і я закінчив підписаний і готовий до виробництва APK.

це ніколи не було задокументовано в жодній частині веб-сайту про розрив телефону, і, чесно кажучи, зараз я ненавиджу фонегап :( це повинно було зробити простіше, але все було просто складним :(


2

Створення програми Android Android PhoneGap для розгортання в Google Play Store

Ці кроки працюватимуть для Кордови, PhoneGap або Ionic. Єдина відмінність полягала б у тому, де б не було зроблено дзвінок cordova, замінити його на phonegapабоionic для вашого конкретного сценарію.

Після закінчення розробки та готовності до розгортання виконайте наступні дії:

  1. Відкрийте вікно командного рядка (Термінал на macOS та Linux OR Командний рядок у Windows).

  2. Перейдіть до / шлях / до / вашого / проекту /, який ми би назвали «Корінь проекту».

  3. Перебуваючи в корені проекту, вийміть плагін "Console" зі свого набору плагінів.

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

  4. Перебуваючи в корені проекту, використовуйте команду зборки cordova, щоб створити 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- вручну.

    В кінці цього кроку отриманий файл APK може бути завантажений у Play Store .

Примітка: Останній крок, як для новачків чи початківців, може бути трохи заплутаним, як і для мене. Можна зіткнутися з декількома проблемами і може виникнути запитання щодо того, що це за команди і де їх знайти.

Q1. Що таке jarsigner та keytool ?
Відповідь: Інструкції з підпису додатків для Android конкретно розповідають про те, що стосується jarsigner та keytool , але НЕ розказує, де їх знайти, якщо у вікні командного рядка ви натрапите на помилку "Не знайдено помилку".

Таким чином, якщо ви додали комплект Java Development Kit (JDK) до змінної PATH , просто запустіть команди, як у Посібнику. Але, якщо у вас його немає у вашому PATH, ви завжди можете отримати доступ до них із папки бін вашої установки JDK.

Q2. Де зіпалінг ?
Відповідь: Існує велика ймовірність не знайти команду zipalign і отримати "помилку команди не знайдено". Ви, мабуть, гуглили би ципалігн і де його знайти? Zipalign утиліта присутній в папці установки Android SDK. На MacOS, розташування за замовчуванням знаходиться, . Якщо ви над головою в папці ви знайдете купу інших папок , як , , , , ... Відкрити в папці. . Тут буде декілька папок, які розроблені відповідно до ланцюжка інструментів побудови, яку ви використовуєте в Android SDK Manager. ZipAlign

user-name/Library/Android/sdk/docsplatform-toolsbuild-toolstoolsadd-ons

build-toolscd build-toolsдоступний у кожній з цих папок. Я особисто переходжу до папки з останньою версією. Відкрити будь-яку.

У macOS або Linux вам, можливо, доведеться використовувати, ./zipalignа не просто вводити текст, zipalignяк згадується в документації. У Windows zipalignдосить добре.


1

Я отримав це для роботи, скопіювавши підписаний додаток у той самий dir, як і zipalign. Здається, що aapt.exe не зміг знайти вихідний файл, навіть коли йому було надано шлях. тобто це не спрацювало zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ target.apk воно дійшло до aapt.exeCordovaApp-release-unsigned.apk, замерзло і після натискання повернення 'aapt.exeCordovaApp-release-unsigned.apk' не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма або пакетний файл. І це зробило zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk


Дякую за пораду. Ви також можете включити шлях до папки zipalign до змінної середовища PATH.
Гільєрмо Гутьєррес

0

Я знаю, що це питання задає конкретно про Phonegap 3.X, але для ознайомлення будь- яка версія Phonegap вище 4.0.0 використовує Gradle замість Ant для побудови за замовчуванням. Щоб використовувати Ant замість Gradle, ви можете додати це до config.xml:

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

Під час використання Gradle інформація про підписання магазину ключів тепер повинна перейти на нове місце ( як зазначено в цій публікації ). Створіть новий файл під назвою ' release-signing.properties ' у тій самій папці, що і файл "build.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

-7

Ви можете спробувати цю команду, вона повинна створити та запустити додаток (так що .apk слід створити):

phonegap local run android


3
Він досі створює лише APK-файли для налагодження.
Гільєрмо Гутьеррес

2
Ні. Це просто те, що він створює APK-файли, підписані налагодженням, а не випускає APK.
Гільєрмо Гутьеррес

1
Тут знайшли рішення (3/4 вниз: "Завершити апк для завантаження в Google Play"): iphonedevlog.wordpress.com/2013/08/16/…
Лорі Кларк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.