Nasadenie na mobilné telefóny a používanie cordova pluginov
Vyvinuli sme jednoduchú webovú aplikáciu a teraz sa chystáme urobiť určité prípravy pred jej nasadením na mobil. Ionic podporuje dve platformy: ios a android, predvolený projekt Ionic tieto dve platformy nepridáva, musíme ho pridať manuálne, cd do vývojového adresára na vykonanie príkazu:
Potrebujem tu len Android platformu a po jej spustení vykonám príkaz na zobrazenie zoznamu platforiem, ktoré ste pridali:
> nástupište Cordova LS
Bol si vylúčený z telemetrie. Aby ste to zmenili, spustite telemetriu: cordova telemetria zapnutá. Nainštalované nástupištia: Android 7.0.0 Dostupné platformy: prehliadač ~5.0.1 iOS ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Balík pre Android
(Ak je s týmto príkazom problém, môžete odstrániť -release a potom debugovať kompiláciu, kompilácia je dokončená, DOS zobrazí polohu adresára apk)
Ak vaše bystré oči zaznamenajú tieto slová: Budujte úspech! Znamená to, že ste úspešne zabalili. Buďte trpezliví, na konci príkazového riadku vás vyzve, kde sa apk generuje.
Keď znova spustím príkaz na balenie, chyba bude nasledovná: chyba je, že verzia jdk je príliš vysoká, mám verziu "jdk-10.0.1" a môžem si znova stiahnuť a nainštalovať verziu "1.8.0_171", aby som problém vyriešil!!
C:\project\android\myApp>ionic cordova build android --release Spúšťanie app-scriptov build: --platform android --target cordova [17:06:47] vývoj začal ... [17:06:47] čistý štart ... [17:06:47] čistý cieľ za 8 ms [17:06:47] Kópia začatá ... [17:06:47] Deeplinks začal ... [17:06:47] deeplinks skončil za 15 ms [17:06:47] transpile začal ... [17:06:50] Transpile dokončil za 3,71 s [17:06:50] predproces začal ... [17:06:50] predspracovanie dokončené za 1 ms [17:06:50] webpack začal ... [17:06:51] kópia dokončená za 3,96 s [17:06:56] Webpack skončil za 5,58 s [17:06:56] začala drzosť ... Bez možnosti 'from' môže PostCSS vygenerovať nesprávnu zdrojovú mapu a nenájde konfiguráciu Browserslist. Nastavte ho na cestu k súboru CSS alebo na 'nedefinované', aby ste tomuto varovaniu zabránili. [17:06:58] Sass skončil za 2,05 s [17:06:58] Postprocess začal ... [17:06:58] postproces dokončený za 10 ms [17:06:58] Začal sa chĺpky ... [17:06:58] vývojár dokončil za 11,65 s > Cordova build Android -- vydanie
Bol si vylúčený z telemetrie. Aby ste to zmenili, spustite telemetriu: cordova telemetria zapnutá. Projekt Android Studio zistený
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (node:14940) UnhandledPromiseRejectionWarning: Nespracované zamietnutie sľubu (remiction id: 1): CordovaError: Kontrola požiadaviek pre JDK 1.8 alebo vyššie zlyhala (node:14940) [DEP0018] ZrušenieUpozornenie: Nevybavené zamietnuté sľuby sú zastarané. V budúcnosti odmietnutia sľubov, ktoré nie sú spracované, ukončia Node.js proces s nenulovým výstupným kódom.
[17:07:01] Lint skončil za 3,00 s Spustite vyššie uvedený príkaz znova, pretože rýchlosť mojej siete je pomalá a je to prvýkrát, čo spúšťam, stiahnem veľa komponentov a podobne, a vykonávam to 12 minút, ako je znázornené na obrázku nižšie:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Skopírujem "app-release-unsigned.apk" do svojho telefónu (Huawei Honor 10) a chyba bude nasledovná:
Je to spôsobené tým, že aplikácia nie je podpísaná a nedá sa nainštalovať.
APK podpis
Keďže môj adresár Java je v environmentálnych premenných, stačí vykonať príkaz cmd nasledovne:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA používa algoritmus RSA na šifrovanie podpisov -platnosť 40000 Platnosť 4000 dní -keystore itsvse.keystore súborový názov */ apksigner sa nachádza v adresári build-tools v adresári SDK. Treba poznamenať, že spôsob podpisovania v2 bol predstavený až po Androide 7.0, takže apksigner.jar možno nájsť iba v SDK\build-tools\ pre verziu >25. Otvorte cmd, rozrežte adresár na SDK\build-tools\Číslo verzie\lib (napríklad C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) a spustite:
Príklad:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore umiestnenie -signedjar demor_signed.apk demo.apk demo.keystore oficiálne podpísaný, súbor demo_signed vygenerovaný po podpísaní v poradí v troch parametroch, súbor demo.apk podpísať a keystore demo.keystore.*/
Skontrolujte, či je apk už podpísaná:
Skopírovame podpísaný súbor "output.apk" do telefónu a potom ho nainštalujeme, dá sa nainštalovať normálne a beží normálne, ako je znázornené na obrázku nižšie:
|