Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12549|Antwoord: 0

[ionisch] Ionic Development Android App Praktijk (2): Android Packaging apk

[Link kopiëren]
Geplaatst op 20-06-2018 10:16:52 | | | |
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:







Vorig:Hoe verwijder je meerdere versies van Java volledig
Volgend:Geen componentfabriek gevonden voor ListPage. Heb je het toegevoegd aan
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com