Deployen naar mobiele telefoons en gebruik van cordova-plugins
We hebben een eenvoudige webapplicatie ontwikkeld en gaan nu wat voorbereidingen treffen voordat we deze naar mobiel uitrollen. Ionic ondersteunt twee platforms: iOS en Android, het standaard Ionic-project voegt deze twee platforms niet toe, we moeten het handmatig toevoegen, cd toevoegen aan de ontwikkelmap om het commando uit te voeren:
Ik heb hier alleen het Android-platform nodig, en nadat ik het heb uitgevoerd, voer ik het commando uit om de lijst met platforms te bekijken die je hebt toegevoegd:
> Cordova Platform LS
Je bent afgestemd op telemetrie. Om dit te veranderen, gebruik je: cordova telemetrie aan. Geïnstalleerde platforms: Android 7.0.0 Beschikbare perrons: browser ~5.0.1 ios ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Android-pakket
(Als er een probleem is met dit commando, kun je -release verwijderen en vervolgens de compilatie debuggen, en de compilatie is voltooid; DOS toont de locatie van de apk-map)
Als je slimme ogen de volgende woorden opmerken: Bouw succes! Het betekent dat je succesvol hebt verpakt. Wees geduldig, aan het einde van de commandoregel krijg je de vraag waar de apk is gegenereerd.
Wanneer ik het pakketcommando opnieuw uitvoer, is de fout als volgt: de fout is dat de jdk-versie te hoog is, ik ben de "jdk-10.0.1" versie, en ik kan opnieuw downloaden en installeren van een "1.8.0_171" versie om het probleem op te lossen!!
C:\project\android\myApp>ionic cordova build android --release App-scripts build: --platform android --target cordova [17:06:47] Build-ontwikkelaar gestart ... [17:06:47] Schoon begonnen ... [17:06:47] schoon afgerond in 8 ms [17:06:47] Ontvangst gestart ... [17:06:47] deeplinks begonnen ... [17:06:47] deeplinks eindigden in 15 ms [17:06:47] transpile gestart ... [17:06:50] Transpile voltooid in 3,71 seconden [17:06:50] Preprocess gestart ... [17:06:50] Preprocess afgerond in 1 ms [17:06:50] Webpack is gestart ... [17:06:51] kopie klaar in 3,96 seconden [17:06:56] Webpack eindigde in 5,58 seconden [17:06:56] Sass begon ... Zonder 'from'-optie kan PostCSS een verkeerde bronkaart genereren en de Browserslist-configuratie niet vinden. Stel het in op CSS-bestandspad of op 'ongedefinieerd' om deze waarschuwing te voorkomen. [17:06:58] Sass finishte in 2,05 seconden [17:06:58] Nabewerking gestart ... [17:06:58] nabewerking afgerond in 10 ms [17:06:58] pluis begon ... [17:06:58] Build-ontwikkelaar voltooid in 11,65 seconden > Cordova build Android --release
Je bent afgestemd op telemetrie. Om dit te veranderen, gebruik je: cordova telemetrie aan. Android Studio-project gedetecteerd
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (knooppunt: 14940) UnhandledPromiseRejectionWarning: Afwijzing van onbehandelde belofte (afwijzings-id: 1): CordovaError: Requirements check mislukt voor JDK 1.8 of hoger (knooppunt: 14940) [DEP0018] Afwijzing Waarschuwing: Niet-afgehandelde afwijzingen van beloften worden gedepreceerd. In de toekomst zullen afwijzingen van beloften die niet worden afgehandeld het Node.js proces beëindigen met een niet-nul exitcode.
[17:07:01] Lin finishte in 3.00 seconden Voer het bovenstaande commando opnieuw uit, want mijn netwerksnelheid is traag en het is de eerste keer dat ik uitvoer, veel componenten download, enzovoort, en het 12 minuten uitvoer, zoals te zien is in de onderstaande figuur:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Ik kopieer "app-release-unsigned.apk" naar mijn telefoon (Huawei Honor 10), en de foutmelding is als volgt:
Dit komt doordat de app niet is ondertekend en niet geïnstalleerd kan worden.
APK-handtekening
Omdat mijn Java-map in de omgevingsvariabelen zit, hoef ik alleen het cmd-commando als volgt uit te voeren:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA gebruikt het RSA-algoritme om handtekeningen te versleutelen -geldigheid 40.000 geldigheid 4.000 dagen -keystore itsvse.keystore bestandsnaam */ apksigner bevindt zich in de build-tools-map van de SDK-directory. Het moet worden opgemerkt dat de v2-signingmethode pas na Android 7.0 werd geïntroduceerd, dus apksigner.jar is alleen te vinden in de SDK\build-tools\ voor versie >25. Open cmd, knip de map naar SDK\build-tools\Version number\lib (bijvoorbeeld C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib), en voer uit:
Voorbeeld:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore locatie -signedjar demor_signed.apk demo.apk demo.keystore officieel ondertekend, het bestand demo_signed na het inloggen gegenereerd in volgorde van de drie parameters, het bestand demo.apk ondertekend worden, en de keystore demo.keystore.*/
Controleer of de apk al ondertekend is:
We kopiëren het ondertekende "output.apk"-bestand naar de telefoon en installeren het dan, het kan normaal worden geïnstalleerd en normaal draaien, zoals te zien is in de onderstaande figuur:
|