Розгортання на мобільних телефонах і використання плагінів Cordova
Ми розробили простий веб-додаток і тепер проведемо деякі приготування перед розгортанням на мобільних платформах. Ionic підтримує дві платформи: iOS та Android, стандартний проєкт Ionic не додає ці дві платформи, потрібно додати їх вручну, CD у каталог розробки для виконання команди:
Мені потрібна лише платформа Android, і після її виконання я виконаю команду, щоб переглянути список платформ, які ви додали:
> платформа Cordova 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, а потім компіляцію debug, і компіляція завершена, DOS відобразить розташування каталогу apk)
Якщо ваші розумні очі помітять такі слова: Будуйте успіх! Це означає, що ви успішно запакували. Будьте терплячі, наприкінці командного рядка вам підкаже, де згенеровано apk.
Коли я знову виконую команду пакування, помилка буде такою: версія jdk занадто висока, я версія "jdk-10.0.1", і я можу повторно завантажити та встановити версію "1.8.0_171", щоб вирішити проблему!!
C:\project\android\myApp>ionic cordova build android --release Запуск app-scripts build: --platform android --target cordova [17:06:47] Почав розробку збірки ... [17:06:47] Чистий початок ... [17:06:47] Чистий фініш за 8 мс [17:06:47] Копія запущена ... [17:06:47] Почалися глибокі посилання... [17:06:47] Deeplinks завершилися за 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 або на 'undefined', щоб уникнути цього попередження. [17:06:58] Сасс фінішував за 2.05 с [17:06:58] Почалася постобробка ... [17:06:58] Післяобробка завершена за 10 мс [17:06:58] Почався ворс ... [17:06:58] Build Dev завершив за 11.65 с > Cordova Build 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): CordovaError: Перевірка вимог не була виконана для 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 Key Store Location -signedjar demor_signed.apk demo.apk demo.keystore офіційно підписано, файл demo_signed згенерований після підписання у порядку за трьома параметрами, файл demo.apk підписаний, а також keystore demo.keystore.*/
Перевірте, чи підписано APK:
Ми скопіюємо підписаний файл "output.apk" на телефон, а потім встановлюємо його, його можна встановити нормально, і він може працювати нормально, як показано на рисунку нижче:
|