Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 12549|Ответ: 0

[ионический] Ionic Development Android-App Practice (2): Apk для Android Packaging

[Скопировать ссылку]
Опубликовано 20.06.2018 10:16:52 | | | |
Развертывание на мобильных телефонах и использование плагинов Cordova

Мы разработали простое веб-приложение, и теперь собираемся подготовиться перед развертыванием на мобильных устройствах.
Ionic поддерживает две платформы: iOS и Android, стандартный проект Ionic не добавляет эти две платформы, нужно добавить их вручную, CD в каталог разработки для выполнения команды:


Мне нужна только платформа Android, и после её запуска я выполним команду, чтобы просмотреть список добавленных вами платформ:

> Платформа Кордова LS

Вас исключили из телеметрии. Чтобы изменить это, запустите: телеметрия Cordova включена.
Установленные платформы:
  Android 7.0.0
Доступные платформы:
  Браузер ~5.0.1
  iOS ~4.5.4
  osx ~4.0.1
  Windows ~5.0.0
  www ^3.12.0



Пакет для Android


(Если с этой командой возникает проблема, можно удалить -release, затем компиляцию отладки, и компиляция завершена, DOS отобразит местоположение каталога apk)

Если ваши умные глаза заметят следующие слова: Строите успех! Это значит, что вы успешно упаковали. Будьте терпеливы, в конце командной строки вам подскажет, где генерируется apk.

Когда я снова выполняю команду упаковки, ошибка будет следующей: ошибка в том, что версия jdk слишком высокая, я — версия "jdk-10.0.1", и я могу заново скачать и установить версию "1.8.0_171", чтобы решить проблему!!

C:\project\android\myApp>ionic cordova build android --release
Запуск scripts app-scripts: --platform android --target cordova
[17:06:47] Разработка сборки начала ...
[17:06:47] Чистый старт ...
[17:06:47] Чистый финиш за 8 мс
[17:06:47] Принято ...
[17:06:47] Запущены глубокие ссылки ...
[17:06:47] Диплинки завершились за 15 мс
[17:06:47] Транспиле началось ...
[17:06:50] Транспайл финишировал за 3,71 с
[17:06:50] Запущена предварительная обработка ...
[17:06:50] Предобработка завершена за 1 мс
[17:06:50] Вебпак начал ...
[17:06:51] копия закончила за 3,96 с
[17:06:56] Webpack финишировал за 5,58 с
[17:06:56] Сасс начал ...
Без опции 'from' PostCSS может сгенерировать неправильную карту исходного кода и не найдёт конфигурацию Browserslist. Установите путь к CSS файлу или на «неопределённый», чтобы избежать этого предупреждения.
[17:06:58] Сасс финишировал за 2,05 с
[17:06:58] Началась постобработка ...
[17:06:58] Постобработка завершена за 10 мс
[17:06:58] Начался ворс ...
[17:06:58] Разработчик сборки закончил за 11,65 с
> сборка Cordova Android — релиз

Вас исключили из телеметрии. Чтобы изменить это, запустите: телеметрия Cordova включена.
Обнаружен проект Android Studio

ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\Java\jdk-10.0.1
(узел:14940) UnhandledPromiseRejectionWarning: Необработанное отклонение обещания (идентификатор отклонения: 1): CordovaОшибка: Проверка требований не прошла для JDK 1.8 или выше
(узел:14940) [DEP0018] Предупреждение: невыполненные отказы от обещаний считаются устаревшими. В будущем отказы обещаний, которые не будут обработаны, завершат процесс Node.js с помощью ненулевой выходной кода.

[17:07:01] Линт финишировал за 3,00 с

Выполните приведённую команду ещё раз, потому что скорость сети у меня низкая, и это первый раз, скачивая много компонентов и так далее, и выполняйте её 12 минут, как показано на рисунке ниже:



C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。

Я копирую «app-release-unsigned.apk» на свой телефон (Huawei Honor 10), и ошибка будет следующей:



Это связано с тем, что приложение не подписано и нельзя установить.

Подпись APK

Поскольку мой каталог Java находится в переменных окружения, мне нужно выполнить команду cmd следующим образом:

/*说明:-genkey 产生密钥
       -alias demo.keystore, alias demo.keystore
       -keyalg RSA использует алгоритм RSA для шифрования сигнатур
       -Действительность 40000 Действительность 4000 дней
       -keystore itsvse.keystore имя файла */

apksigner находится в каталоге build-tools каталога SDK. Следует отметить, что метод подписи v2 был введён только после Android 7.0, поэтому apksigner.jar можно найти только в SDK\build-tools\ версии >25.
Откройте cmd, отрежьте каталог в SDK\build-tools\Version number\lib (например, C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) и выполните:


Пример:

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
       -keystore demo.keystore location keystore
       -signedjar demor_signed.apk demo.apk demo.keystore официально подписан, файл demo_signed сгенерирован после подписания в порядке по трём параметрам, файл demo.apk для подписания, и keystore demo.keystore.*/



Проверьте, подписан ли APK:

Мы копируем подписанный файл «output.apk» на телефон, затем устанавливаем его, его можно установить нормально, и он может работать нормально, как показано на рисунке ниже:







Предыдущий:Как полностью удалить несколько версий Java
Следующий:Завод компонентов для ListPage не нашёл. Ты добавил это
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com