Distribuzione su telefoni cellulari e utilizzo di plugin cordova
Abbiamo sviluppato una semplice applicazione web e ora faremo alcune preparazioni prima di distribuirla su mobile. Ionic supporta due piattaforme: ios e android, il progetto Ionic predefinito non aggiunge queste due piattaforme, dobbiamo aggiungerlo manualmente e inserirlo nella directory di sviluppo per eseguire il comando:
Qui mi serve solo la piattaforma Android e, dopo averla eseguita, eseguirò il comando per visualizzare l'elenco delle piattaforme che hai aggiunto:
> banchina Cordova LS
Sei stato escluso dalla telemetria. Per cambiare questo, esegui: telemetria cordova attiva. Piattaforme installate: Android 7.0.0 Piattaforme disponibili: browser ~5.0.1 iOS ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Pacchetto Android
(Se c'è un problema con questo comando, puoi rimuovere -release e poi debug compilation, e la compilation è completata, DOS mostrerà la posizione della directory apk)
Se i tuoi occhi intelligenti individuano le seguenti parole: Costruisci il successo! Significa che hai confezionato con successo. Abbi pazienza, la fine della riga di comando ti indicherà dove viene generato l'apk.
Quando eeguo di nuovo il comando di packaging, l'errore sarà il seguente: l'errore è che la versione jdk è troppo alta, io sono la versione "jdk-10.0.1" e posso ricaricare e installare una versione "1.8.0_171" per risolvere il problema!!
C:\project\android\myApp>ionic cordova build android --release Esecuzione di app-script build: --platform android --target cordova [17:06:47] sviluppo build iniziato ... [17:06:47] Pulito iniziato ... [17:06:47] pulito finito in 8 ms [17:06:47] Ricevuta iniziata ... [17:06:47] i deeplink iniziarono ... [17:06:47] Deeplinks completati in 15 ms [17:06:47] traspile iniziato ... [17:06:50] Transpile ha concluso in 3,71 s [17:06:50] Il pre-processo è iniziato ... [17:06:50] preprocesso completato in 1 ms [17:06:50] Webpack iniziato ... [17:06:51] Copia terminata in 3,96 s [17:06:56] Webpack ha concluso in 5,58 s [17:06:56] Sass iniziò ... Senza l'opzione 'from', PostCSS potrebbe generare una mappa sorgente errata e non troverà la configurazione di Browserslist. Impostalo su percorso file CSS o su 'indefinito' per evitare questo avviso. [17:06:58] Sass ha concluso in 2,05 s [17:06:58] il post-processo è iniziato ... [17:06:58] post-processo completato in 10 ms [17:06:58] Il pelucchio ha iniziato ... [17:06:58] sviluppo build terminato in 11.65 s > Cordova build Android --release
Sei stato escluso dalla telemetria. Per cambiare questo, esegui: telemetria cordova attiva. Progetto Android Studio rilevato
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (nodo:14940) UnhandledPromiseRejectionWarning: Rifiuto della promessa non trattato (id rifiuto: 1): CordovaErrore: Controllo dei requisiti fallito per JDK 1.8 o superiore (nodo:14940) [DEP0018] DeprecationAttenzione: I rifiuti delle promesse non gestite sono obsoleti. In futuro, i rifiuti delle promesse non gestite termineranno il processo di Node.js con un codice di uscita diverso da zero.
[17:07:01] Lint ha finito in 3,00 s Esegui di nuovo il comando sopra, perché la velocità della mia rete è lenta, ed è la prima volta che esegui, scarica molti componenti, ecc., ed esegui per 12 minuti, come mostrato nella figura qui sotto:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Copio "app-release-unsigned.apk" sul mio telefono (Huawei Honor 10) e l'errore sarà il seguente:
Questo perché l'app non è connessa e non riesce a installarsi.
Firma APK
Poiché la mia directory Java è nelle variabili dell'ambiente, devo solo eseguire il comando cmd come segue:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA utilizza l'algoritmo RSA per cifrare le firme -validità 40000 Validità 4000 giorni -keystore itsvse.keystore nome file */ apksigner si trova nella directory build-tools della directory SDK. Va notato che il metodo di firma v2 è stato introdotto solo dopo Android 7.0, quindi apksigner.jar si trova solo nell'SDK\build-tools\ per la versione >25. Apri cmd, taglia la directory a SDK\build-tools\Numero versione\lib (ad esempio, C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) ed esegui:
Esempio:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore posizione keystore -signedjar demor_signed.apk demo.apk demo.keystore firmati ufficialmente, il file demo_signed generato dopo la firma in ordine nei tre parametri, il file demo.apk da firmare e il keystore demo.keystore.*/
Controlla se l'apk è già firmato:
Copiamo il file firmato "output.apk" sul telefono, poi lo installiamo; può essere installato normalmente e può funzionare normalmente, come mostrato nella figura qui sotto:
|