Wdrażanie na telefony komórkowe i korzystanie z wtyczek cordova
Stworzyliśmy prostą aplikację webową i teraz zamierzamy przygotować ją przed wdrożeniem na urządzeniach mobilnych. Ionic obsługuje dwie platformy: iOS i Android, domyślny projekt Ionic nie dodaje tych dwóch platform, musimy dodać go ręcznie, cd do katalogu deweloperskiego, aby wykonać polecenie:
Potrzebuję tu tylko platformy Android, a po jej uruchomieniu wykonam polecenie, aby wyświetlić listę dodanych przez Ciebie platform:
> peron Cordova LS
Zostałeś wykluczony z telemetrii. Aby to zmienić, uruchom: telemetria cordova włączona. Zainstalowane platformy: Android 7.0.0 Dostępne platformy: przeglądarka ~5.0.1 iOS ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Pakiet Android
(Jeśli pojawi się problem z tym poleceniem, możesz usunąć -release, a następnie debugować kompilację, a kompilacja zostanie zakończona, DOS wyświetli lokalizację katalogu apk)
Jeśli twoje bystre oko dostrzeże następujące słowa: Buduj sukces! Oznacza to, że pomyślnie zapakowałeś zamówienie. Bądź cierpliwy, na końcu wiersza poleceń pojawi się informacja, gdzie wygenerowany jest apk.
Gdy ponownie wykonam polecenie pakowania, błąd będzie następujący: wersja jdk jest zbyt wysoka, mam wersję "jdk-10.0.1" i mogę ponownie pobrać oraz zainstalować wersję "1.8.0_171", żeby rozwiązać problem!!
C:\project\android\myApp>ionic cordova build android --release Uruchamianie skryptów aplikacji: --platforma android --target cordova [17:06:47] rozpoczęto tworzenie budowy... [17:06:47] Czysty start ... [17:06:47] czysty ukończył w 8 ms [17:06:47] kopia rozpoczęła ... [17:06:47] Deeplinks rozpoczęło ... [17:06:47] deeplinks ukończył w 15 ms [17:06:47] rozpoczęto transpile ... [17:06:50] Transpile ukończył w 3,71 s [17:06:50] rozpoczęto preprocesowanie ... [17:06:50] proces wstępny zakończony w 1 ms [17:06:50] webpack rozpoczął ... [17:06:51] kopia zakończona w 3,96 s [17:06:56] Webpack ukończył w 5,58 s [17:06:56] zadziorność zaczęła ... Bez opcji 'from' PostCSS może wygenerować błędną mapę źródłową i nie znajdzie konfiguracji Browserslist. Ustaw ścieżkę do pliku CSS lub "niezdefiniowane", aby zapobiec temu ostrzeżeniu. [17:06:58] SASS ukończył w 2,05 s [17:06:58] rozpoczęto postproces... [17:06:58] proces końcowy w 10 ms [17:06:58] Lint się zaczął ... [17:06:58] Build Dev ukończył w 11,65 s > Cordova Build Android – wydanie
Zostałeś wykluczony z telemetrii. Aby to zmienić, uruchom: telemetria cordova włączona. Wykryto projekt Android Studio
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (node:14940) NieobsługiwaneObiecOdrzenieOstrzeżenie: Nieobsłużone odrzucenie obietnicy (odrzucenie id: 1): CordovaError: Sprawdzenie wymagań nie zostało zadane dla JDK 1.8 lub wyższego (node:14940) [DEP0018] WycofanieOstrzeżenie: Odrzucenia obietnic są niespełnione i wygaszane. W przyszłości odrzucenia obietnic, które nie zostaną obsłużone, zakończą proces Node.js niezerowym kodem wyjścia.
[17:07:01] Lint ukończył w 3,00 s Wykonałem powyższe polecenie ponownie, ponieważ prędkość mojej sieci jest wolna, a to pierwszy raz, kiedy wykonuję, pobieram dużo komponentów itd., i wykonuję to przez 12 minut, jak pokazano na poniższym rysunku:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Kopiuję "app-release-unsigned.apk" na telefon (Huawei Honor 10) i błąd wygląda następująco:
Dzieje się tak, ponieważ aplikacja nie jest podpisana i nie można jej zainstalować.
APK Signature
Ponieważ mój katalog Java znajduje się w zmiennych środowiskowych, muszę wykonać tylko polecenie cmd w następujący sposób:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA wykorzystuje algorytm RSA do szyfrowania sygnatur -ważność 40000 Ważność 4000 dni -keystore itsvse.keystore file _/ apksigner znajduje się w katalogu build-tools w katalogu SDK. Należy zauważyć, że metoda podpisywania v2 została wprowadzona dopiero po Androidzie 7.0, więc można apksigner.jar znaleźć tylko w SDK\build-tools\ dla wersji >25. Otwórz cmd, wytnij katalog na SDK\build-tools\Version number\lib (np. C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) i wykonaj:
Przykład:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore lokalizacja -signedjar demor_signed.apk demo.apk demo.keystore oficjalnie podpisany, plik demo_signed wygenerowany po podpisaniu w kolejności trzech parametrów, plik demo.apk podlegać podpisowi oraz keystore demo.keystore.*/
Sprawdź, czy apk jest już podpisany:
Kopiujemy podpisany plik "output.apk" na telefon, a następnie go instalujemy, można go zainstalować normalnie i działać normalnie, jak pokazano na poniższym rysunku:
|