Ανάπτυξη σε κινητά τηλέφωνα και χρήση προσθηκών cordova
Έχουμε αναπτύξει μια απλή διαδικτυακή εφαρμογή και τώρα θα κάνουμε κάποιες προετοιμασίες πριν την αναπτύξουμε σε κινητά. Το Ionic υποστηρίζει δύο πλατφόρμες: ios και android, το προεπιλεγμένο έργο Ionic δεν προσθέτει αυτές τις δύο πλατφόρμες, πρέπει να το προσθέσουμε χειροκίνητα, cd στον κατάλογο ανάπτυξης για να εκτελέσουμε την εντολή:
Χρειάζομαι μόνο την πλατφόρμα Android εδώ και αφού την εκτελέσω, θα εκτελέσω την εντολή για να δω τη λίστα των πλατφορμών που έχετε προσθέσει:
> Cordova Platform LS
Έχετε εξαιρεθεί από την τηλεμετρία. Για να το αλλάξετε αυτό, εκτελέστε: cordova telemetry on. Εγκατεστημένες πλατφόρμες: Android 7.0.0 Διαθέσιμες πλατφόρμες: φυλλομετρητής ~5.0.1 iOS ~4.5.4 OSX ~4.0.1 παράθυρα ~5.0.0 www ^3.12.0 (στα Αγγλικά)
Πακέτο Android
(Εάν υπάρχει πρόβλημα με αυτήν την εντολή, μπορείτε να καταργήσετε το -release και στη συνέχεια να διορθώσετε τη μεταγλώττιση και η μεταγλώττιση ολοκληρωθεί, το DOS θα εμφανίσει τη θέση του καταλόγου apk)
Εάν τα έξυπνα μάτια σας εντοπίσουν τις ακόλουθες λέξεις: Χτίστε την επιτυχία! Σημαίνει ότι έχετε συσκευάσει με επιτυχία. Να είστε υπομονετικοί, το τέλος της γραμμής εντολών θα σας ζητήσει πού δημιουργείται το apk.
Όταν εκτελέσω ξανά την εντολή συσκευασίας, το σφάλμα θα είναι το εξής, το σφάλμα είναι ότι η έκδοση jdk είναι πολύ υψηλή, είμαι η έκδοση "jdk-10.0.1" και μπορώ να κατεβάσω ξανά και να εγκαταστήσω μια έκδοση "1.8.0_171" για να λύσω το πρόβλημα!!
C:\project\android\myApp>ionic cordova build android --release Εκτέλεση σεναρίων εφαρμογών: --πλατφόρμα android --target cordova [17:06:47] Ο προγραμματιστής κατασκευής ξεκίνησε ... [17:06:47] καθαρό ξεκίνησε... [17:06:47] καθαρό φινίρισμα σε 8 ms [17:06:47] Η αντιγραφή ξεκίνησε ... [17:06:47] Οι σύνδεσμοι σε βάθος ξεκίνησαν... [17:06:47] Οι βαθιές συνδέσεις ολοκληρώθηκαν σε 15 ms [17:06:47] Η μεταφόρτωση ξεκίνησε ... [17:06:50] Το transpile τελείωσε σε 3.71 δευτερόλεπτα [17:06:50] Η προεπεξεργασία ξεκίνησε ... [17:06:50] Η προεπεξεργασία ολοκληρώθηκε σε 1 ms [17:06:50] Το Webpack ξεκίνησε ... [17:06:51] Το αντίγραφο ολοκληρώθηκε σε 3,96 δευτερόλεπτα [17:06:56] Το Webpack τελείωσε σε 5.58 δευτερόλεπτα [17:06:56] Η Sass ξεκίνησε ... Χωρίς την επιλογή «από», το PostCSS θα μπορούσε να δημιουργήσει λάθος χάρτη πηγής και δεν θα βρει τη διαμόρφωση του Browserslist. Ορίστε το σε διαδρομή αρχείου CSS ή σε «απροσδιόριστο» για να αποτρέψετε αυτήν την προειδοποίηση. [17:06:58] Η Sass τερμάτισε σε 2.05 δευτερόλεπτα [17:06:58] Η διαδικασία μετά την έναρξη ... [17:06:58] Η μετα-διαδικασία ολοκληρώθηκε σε 10 ms [17:06:58] Το χνούδι ξεκίνησε... [17:06:58] Ο προγραμματιστής κατασκευής τελείωσε σε 11.65 δευτ. > cordova build android --release
Έχετε εξαιρεθεί από την τηλεμετρία. Για να το αλλάξετε αυτό, εκτελέστε: cordova telemetry on. Εντοπίστηκε έργο Android Studio
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (κόμβος:14940) UnhandledPromiseRejectionWarning: Απόρριψη υπόσχεσης χωρίς χειρισμό (αναγνωριστικό απόρριψης: 1): CordovaError: Ο έλεγχος απαιτήσεων απέτυχε για JDK 1.8 ή νεότερη έκδοση (κόμβος:14940) [DEP0018] DeprecationWarning: Οι απορρίψεις υποσχέσεων που δεν έχουν χειριστεί αποσύρονται. Στο μέλλον, οι απορρίψεις υποσχέσεων που δεν αντιμετωπίζονται θα τερματίσουν τη διαδικασία Node.js με έναν μη μηδενικό κωδικό εξόδου.
[17:07:01] Ο Lint τερμάτισε σε 3.00 δευτερόλεπτα Εκτελέστε ξανά την παραπάνω εντολή, επειδή η ταχύτητα του δικτύου μου είναι αργή και είναι η πρώτη φορά που εκτελώ, κατεβάζω πολλά στοιχεία κ.λπ., και την εκτελώ για 12 λεπτά, όπως φαίνεται στο παρακάτω σχήμα:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Αντιγράφω το "app-release-unsigned.apk" στο τηλέφωνό μου (Huawei Honor 10) και το σφάλμα θα είναι το εξής:
Αυτό οφείλεται στο ότι η εφαρμογή δεν είναι υπογεγραμμένη και δεν μπορεί να εγκατασταθεί.
Υπογραφή Apk
Δεδομένου ότι ο κατάλογος Java μου βρίσκεται στις μεταβλητές περιβάλλοντος, χρειάζεται μόνο να εκτελέσω την εντολή cmd ως εξής:
/*说明:-genkey 产生密钥 -ψευδώνυμο demo.keystore ψευδώνυμο demo.keystore -keyalg Το RSA χρησιμοποιεί τον αλγόριθμο RSA για την κρυπτογράφηση υπογραφών -Ισχύς 40000 Ισχύς 4000 ημέρες -keystore itsvse.keystore όνομα αρχείου */ Το apksigner βρίσκεται στον κατάλογο build-tools του καταλόγου SDK. Πρέπει να σημειωθεί ότι η μέθοδος υπογραφής v2 εισήχθη μόνο μετά το Android 7.0, επομένως apksigner.jar μπορεί να βρεθεί μόνο στο SDK\build-tools\ για την έκδοση >25. Ανοίξτε το cmd, κόψτε τον κατάλογο σε SDK\build-tools\Αριθμός έκδοσης\lib (για παράδειγμα, C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) και εκτελέστε:
Παράδειγμα:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore τοποθεσία keystore -signedjar demor_signed.apk demo.apk demo.keystore επίσημα υπογεγραμμένο, το αρχείο demo_signed δημιουργηθεί μετά την υπογραφή με τη σειρά στις τρεις παραμέτρους, το αρχείο demo.apk να υπογραφεί και το keystore demo.keystore.*/
Ελέγξτε εάν το apk είναι ήδη υπογεγραμμένο:
Αντιγράφουμε το υπογεγραμμένο αρχείο "output.apk" στο τηλέφωνο και, στη συνέχεια, το εγκαθιστούμε, μπορεί να εγκατασταθεί κανονικά και μπορεί να λειτουργήσει κανονικά, όπως φαίνεται στο παρακάτω σχήμα:
|