Развертывание на мобильных телефонах и использование плагинов 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» на телефон, затем устанавливаем его, его можно установить нормально, и он может работать нормально, как показано на рисунке ниже:
|