Distribuera till mobiltelefoner och använda cordova-plugins
Vi har utvecklat en enkel webbapplikation, och nu ska vi göra några förberedelser innan vi distribuerar den till mobil. Ionic stöder två plattformar: iOS och Android, standardprojektet Ionic lägger inte till dessa två plattformar, vi måste lägga till det manuellt, cd till utvecklingskatalogen för att utföra kommandot:
Jag behöver bara Android-plattformen här, och efter att ha kört den kommer jag att köra kommandot för att visa listan över plattformar du har lagt till:
> Cordova plattform LS
Du har valt bort telemetri. För att ändra detta, kör: cordova telemetri på. Installerade plattformar: Android 7.0.0 Tillgängliga plattformar: webbläsare ~5.0.1 ios ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Android-paket
(Om det uppstår problem med detta kommando kan du ta bort -release och sedan felsöka kompileringen, och kompileringen är klar, DOS visar apk-katalogens plats)
Om dina kloka ögon upptäcker följande ord: Bygg framgång! Det betyder att du har paketerat framgångsrikt. Ha tålamod, i slutet av kommandoraden kommer du att visa var apk:n genereras.
När jag utför paketeringskommandot igen kommer felet att vara följande: felet är att jdk-versionen är för hög, jag är "jdk-10.0.1"-versionen, och jag kan ladda ner och installera en "1.8.0_171"-version för att lösa problemet!!
C:\project\android\myApp>ionic cordova build android --release Kör app-skript build: --plattform android --target cordova [17:06:47] byggutveckling påbörjad ... [17:06:47] På nytt startat ... [17:06:47] Rent avslutat på 8 ms [17:06:47] Kopiering påbörjad ... [17:06:47] deeplinks började ... [17:06:47] deeplinks avslutades på 15 ms [17:06:47] Transpile påbörjades ... [17:06:50] transpil avslutades på 3,71 s [17:06:50] Förprocessen har börjat ... [17:06:50] förprocessen avslutad på 1 ms [17:06:50] Webpack startade ... [17:06:51] kopia klar på 3,96 s [17:06:56] Webpack avslutade på 5,58 s [17:06:56] Sass började ... Utan 'from'-alternativet kan PostCSS generera fel källkarta och hittar inte Browserslist-konfigurationen. Ställ in den på CSS-filsökväg eller 'odefinierad' för att undvika denna varning. [17:06:58] Sass gick i mål på 2,05 sekunder [17:06:58] efterprocessen påbörjad ... [17:06:58] efterbehandlingen avslutad på 10 ms [17:06:58] ludd började ... [17:06:58] Byggutvecklaren avslutades på 11,65 sekunder > Cordova bygger Android --släpp
Du har valt bort telemetri. För att ändra detta, kör: cordova telemetri på. Android Studio-projekt upptäckt
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (nod:14940) UnhandledPromiseRejectionWarning: Unhandled promise rejection rejection (rejection id: 1): CordovaError: Kravkontrollen misslyckades för JDK 1.8 eller högre (nod:14940) [DEP0018] AvbokningVarning: Ohanterade löftesavslag är föråldrade. I framtiden kommer löftesavvisningar som inte hanteras att avsluta Node.js processen med en icke-noll utgångskod.
[17:07:01] Lind slutade på 3.00 s Utför ovanstående kommando igen, eftersom min nätverkshastighet är långsam, och det är första gången jag kör, laddar ner många komponenter osv., och kör det i 12 minuter, som visas i figuren nedan:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Jag kopierar "app-release-unsigned.apk" till min telefon (Huawei Honor 10), och felet blir följande:
Detta beror på att appen inte är signerad och inte kan installeras.
APK-signatur
Eftersom min Java-katalog finns i miljövariablerna behöver jag bara köra cmd-kommandot enligt följande:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA använder RSA-algoritmen för att kryptera signaturer -giltighet 40000 giltighet 4000 dagar -keystore itsvse.keystore filnamn */ apksigner finns i build-tools-katalogen i SDK-katalogen. Det bör noteras att v2-signeringsmetoden först introducerades efter Android 7.0, så apksigner.jar kan endast hittas i SDK\build-tools\ för version >25. Öppna cmd, klipp katalogen till SDK\build-tools\Version number\lib (till exempel C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib), och kör:
Exempel:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore-nyckelbutik plats -signedjar demor_signed.apk demo.apk demo.keystore officiellt signerad, filen demo_signed genererad efter inloggning i ordning inom de tre parametrarna, filen demo.apk signeras och keystore demo.keystore.*/
Kontrollera om apk:n redan är signerad:
Vi kopierar den signerade "output.apk"-filen till telefonen och installerar den sedan, den kan installeras normalt och köras normalt, som visas i figuren nedan:
|