Despliegue en teléfonos móviles y uso de plugins Cordova
Hemos desarrollado una aplicación web sencilla y ahora vamos a hacer algunos preparativos antes de desplegarla en móvil. Ionic soporta dos plataformas: iOS y Android, el proyecto Ionic por defecto no añade estas dos plataformas, necesitamos añadirlo manualmente y ponerlo en CD al directorio de desarrollo para ejecutar el comando:
Aquí solo necesito la plataforma Android y, tras ejecutarla, ejecutaré el comando para ver la lista de plataformas que has añadido:
> Andén de Córdova LS
Has sido excluido de la telemetría. Para cambiar esto, ejecuta: telemetría córdova activada. Plataformas instaladas: Android 7.0.0 Plataformas disponibles: navegador ~5.0.1 iOS ~4.5.4 OSX ~4.0.1 Windows ~5.0.0 www ^3.12.0
Paquete Android
(Si hay un problema con este comando, puedes eliminar -release y luego depurar compilación, y la compilación está completada, DOS mostrará la ubicación del directorio apk)
Si tus ojos inteligentes detectan las siguientes palabras: ¡Construye el éxito! Significa que has empaquetado con éxito. Ten paciencia, al final de la línea de comandos te indicará dónde se genera el apk.
Cuando ejecuto de nuevo el comando de empaquetado, el error será el siguiente: el error es que la versión de jdk está demasiado alta, yo soy la versión "jdk-10.0.1" y puedo volver a descargar e instalar una versión "1.8.0_171" para solucionar el problema!!
C:\project\android\myApp>ionic cordova build android --release Ejecutando scripts de aplicación: --plataforma android --target cordova [17:06:47] desarrollo de build iniciado ... [17:06:47] Limpio arrancó... [17:06:47] limpio terminado en 8 ms [17:06:47] Copia iniciada ... [17:06:47] Deeplinks comenzaron ... [17:06:47] Deeplinks terminó en 15 ms [17:06:47] Transpile ha comenzado... [17:06:50] Transpile terminó en 3,71 s [17:06:50] El preproceso ha comenzado ... [17:06:50] el preproceso terminado en 1 ms [17:06:50] webpack ha comenzado... [17:06:51] Copia terminada en 3,96 s [17:06:56] Webpack terminó en 5,58 s [17:06:56] Empezó la descarada ... Sin la opción 'de', PostCSS podría generar un mapa de fuente incorrecto y no encontrará la configuración de Browserslist. Ponlo en ruta de archivo CSS o en 'indefinido' para evitar esta advertencia. [17:06:58] Sass terminó en 2,05 s [17:06:58] El postproceso comenzó ... [17:06:58] postproceso terminado en 10 ms [17:06:58] La pelusa empezó ... [17:06:58] desarrollo de compilación terminado en 11.65 s > Build Cordova para Android --lanzamiento
Has sido excluido de la telemetría. Para cambiar esto, ejecuta: telemetría córdova activada. Se detectó el proyecto Android Studio
ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk JAVA_HOME=C:\Program Files\Java\jdk-10.0.1 (nodo:14940) UnhandledPromiseRejectionWarning: Rechazo de promesa no gestionado (id de rechazo: 1): CordovaError: Fallida comprobación de requisitos para JDK 1.8 o superior (nodo:14940) [DEP0018] DepreciaAdvertencia: Los rechazos de promesas no gestionadas quedan obsoletos. En el futuro, los rechazos de promesas que no se gestionan terminarán el proceso de Node.js con un código de salida distinto de cero.
[17:07:01] Lint terminó en 3,00 s Ejecuta el comando anterior de nuevo, porque la velocidad de mi red es lenta y es la primera vez que ejecuto, descarga muchos componentes, etc., y lo ejecuto durante 12 minutos, como se muestra en la figura de abajo:
C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。
Copio "app-release-unsigned.apk" a mi teléfono (Huawei Honor 10), y el error será el siguiente:
Esto se debe a que la app no está firme y no puede instalarse.
Firma APK
Como mi directorio Java está en las variables de entorno, solo necesito ejecutar el comando cmd de la siguiente manera:
/*说明:-genkey 产生密钥 -alias demo.keystore alias demo.keystore -keyalg RSA utiliza el algoritmo RSA para cifrar firmas -validez 40000 Validez 4000 días -keystore itsvse.keystore nombre de archivo */ apksigner se encuentra en el directorio build-tools del directorio SDK. Cabe señalar que el método de firma v2 solo se introdujo después de Android 7.0, por lo que solo apksigner.jar puede encontrarse en el SDK\build-tools\ de la versión >25. Abre el cmd, corta el directorio a SDK\build-tools\Número de versión\lib (por ejemplo, C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) y ejecuta:
Ejemplo:
D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息 -keystore demo.keystore keystore ubicación -signedjar demor_signed.apk demo.apk demo.keystore firmed oficialmente, el archivo demo_signed generado tras firmar en orden en los tres parámetros, el archivo demo.apk firmar y el keystore demo.keystore.*/
Comprueba si el apk ya está firmado:
Copiamos el archivo "output.apk" firmado al teléfono y luego lo instalamos; se puede instalar normalmente y puede funcionar con normalidad, como se muestra en la figura de abajo:
|