Hice una aplicación de muestra llamada checkStatus
. Ahora quiero crear un archivo APK firmado. Entonces puedo instalarlo en diferentes dispositivos para mis pruebas.
Para esto, busqué en Google y encontré esta documentación .
Según el documento, cambié a mi directorio de proyecto y ejecuté el siguiente comando:
keytool -genkey -v -keystore key-name.keystore -alias alias-name -keyalg RSA -keysize 2048 -validity 10000
Después de ejecutar el comando anterior, obtuve un archivo llamado key-name.keystore
at projectRoot/key-name.keystore
.
Y luego copié y pegué ese archivo projectRoot/platforms/android/key-name.keystore
.
Después de eso, creé un archivo llamado ant.properties
y lo guardé projectRoot/platforms/android
.
Escribí el siguiente código dentro del archivo:
key.store=projectRoot/key-name.keystore
key.alias=myApp
Después de eso, ejecuté el siguiente comando para liberar
Cordova builds android --release
Está arrojando el siguiente error:
/home/projectRoot/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: release,-f,/home/projectRoot/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /home/projectRoot/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
Esta vez, modifiqué el key.store
valor en el ant.properties
archivo de la siguiente manera.
key.store=/home/projectRoot/platforms/android/key-name.keystore
Nuevamente, ejecuté el cordova build android --release
comando. Lanza el mismo error.
¿Alguien puede decirme qué he hecho mal?
Respuestas:
Paso 1:
agregue el
--save
para que elimine el complemento delconfig.xml
archivo.Paso 2:
Para generar una versión de lanzamiento para Android, primero debemos hacer un pequeño cambio en el
AndroidManifest.xml
archivo que se encuentra en plataformas / Android. Edite el archivo y cambie la línea:y cambiar
android:debuggable
afalse
:A partir de cordova 6.2.0, elimine completamente la etiqueta android: debuggable. Aquí está la explicación de Córdoba:
Si, por otro lado, especifica un valor específico en el archivo de manifiesto, las herramientas siempre lo usarán. Esto puede llevar a publicar accidentalmente su aplicación con información de depuración.
Paso 3:
Ahora podemos decirle a cordova que genere nuestra versión de lanzamiento:
Luego, podemos encontrar nuestro archivo APK sin firmar en
platforms/android/ant-build
. En nuestro ejemplo, el archivo fueplatforms/android/ant-build/Example-release-unsigned.apk
Paso 4:
Nota: Tenemos nuestro almacén
keystoreNAME-mobileapps.keystore
de claves en este repositorio de Git, si desea crear otro, continúe con los siguientes pasos.Generación clave:
Sintaxis:
Egs:
Luego, el almacén de claves se ha generado con el nombre NAME-mobileapps.keystore
Paso 5:
Coloque el almacén de claves generado en
versión antigua cordova
Nueva versión cordova
Para firmar el APK sin firmar, ejecute la herramienta jarsigner que también se incluye en el JDK:
Sintaxis:
Egs:
O
Esto firma el apk en su lugar.
Paso 6:
Finalmente, necesitamos ejecutar la herramienta de alineación zip para optimizar el APK:
O
O
Ahora tenemos nuestro binario de lanzamiento final llamado example.apk y podemos lanzarlo en Google Play Store.
fuente
-tsa timestamp.digicert.com
lanzó una NullPointerException para mí.-tsa http://timestamp.digicert.com
parece arreglarloUna actualización de @malcubierre para Cordova 4 (y posterior) -
Crea un archivo llamado
release-signing.properties
y ponlo en laAPPFOLDER\platforms\android
carpetaContenido del archivo: editar después = para todos excepto la segunda línea
Entonces este comando debería construir una versión de lanzamiento:
fuente
build-extras.gradle
archivo. Documento relevante de Córdoba aquí .En la documentación actual podemos especificar un build.json con el almacén de claves:
Y luego, ejecute el comando con --buildConfig argumente, de esta manera:
fuente
Paso 1:
Vaya a
cordova\platforms\android
Ant y cree unant.properties
archivo llamado file con la información del archivo del almacén de claves (este almacén de claves se puede generar desde su SDK de Android favorito, estudio ...):Paso 2:
Ve al camino de Córdoba y ejecuta:
Nota: se le solicitará que solicite su almacén de claves y contraseña clave
Aparecerá YourApp-release.apk en
\cordova\platforms\android\ant-build
fuente
En cordova 6.2.0 , tiene una manera fácil de crear una versión de lanzamiento. consulte otros pasos aquí Pasos 1, 2 y 4
fuente
The system cannot find the file specified
usar Cordova 6.2.0cordova build android --release -- --keystore="C:\release.keystore" --storePassword=****** --alias=mr5
"
(comillas dobles), comenzó a ejecutarse. Creo que Cordova tiene un problema con el análisis de caracteres especiales.En Mac (osx), generé dos archivos .sh, uno para la primera publicación y otro para actualizar:
Y para actualizar tu aplicación:
Suponiendo que está en su carpeta de inicio o en una carpeta que encabeza sus carpetas de aplicaciones. Asegúrese de configurar correctamente chmod para usar este script. Luego :
Su apk firmado estará en la carpeta de su aplicación / plataformas / android / build / salidas / apk / as SignedApk.apk Asegúrese de utilizar el alias y la contraseña correctos definidos con el primer script
fuente
Cree el archivo APK de cordova release en cmd.
RUTA DEL ARCHIVO DE LA TIENDA CLAVE : ruta del archivo del almacén de claves (F: /cordova/myApp/xxxxx.jks)
CONTRASEÑA DE LA TIENDA CLAVE : xxxxx
ALIAS DE TIENDA CLAVE : xxxxx
CLAVE ALIAS CONTRASEÑA : xxxxx
RUTA DE zipalign.exe : ruta del archivo zipalign.exe (C: \ Users \ xxxx \ AppData \ Local \ Android \ sdk \ build-tools \ 25.0.2 \ zipalign)
NOMBRE DE APK NO FIRMADO PARA ANDROID : android-release-unsigned.apk
NOMBRE DE LA APLICACIÓN DE ANDROID : android-release.apk
Ejecute los pasos a continuación en cmd (ejecutar como administrador)
fuente
fuente
Primero verifique su código de versión y el nombre de la versión si está actualizando su aplicación. Y asegúrese de tener un almacén de claves anterior.
Si está actualizando la aplicación, siga el paso 1,3,4.
Paso 1:
Pase a su proyecto de Córdoba para generar nuestra versión de lanzamiento:
Luego, podemos encontrar nuestro archivo APK sin firmar en plataformas / android / ant-build. En nuestro ejemplo, el archivo fue
si usaste ant-build
O
si usaste gradle-build
Paso 2:
Generación clave:
Sintaxis:
si el comando keytool no reconoce, haga este paso
Verifique que el directorio en el que se encuentra el ejecutable keytool esté en su ruta. (Por ejemplo, en mi máquina con Windows 7, está en C: \ Archivos de programa (x86) \ Java \ jre6 \ bin).
Ejemplo:
Luego, el almacén de claves se ha generado con el nombre NAME-mobileapps.keystore
Paso 3:
Coloque el almacén de claves generado en D: \ projects \ Phonegap \ Example \ plataformas \ android \ ant-build
Para firmar el APK sin firmar, ejecute la herramienta jarsigner que también se incluye en el JDK:
Sintaxis:
Si no se reconcilia, siga estos pasos
(1) Haga clic con el botón derecho en "Esta PC"> haga clic con el botón derecho en Propiedades> Configuración avanzada del sistema> Variables de entorno> seleccione RUTA y EDITAR.
(2) Agregue la ruta de la carpeta jdk bin a las variables de entorno, debería verse así:
"C: \ Archivos de programa \ Java \ jdk1.8.0_40 \ bin".
Ejemplo:
Esto firma el apk en su lugar.
Paso 4:
Finalmente, necesitamos ejecutar la herramienta de alineación zip para optimizar el APK:
si zipalign no reconoce entonces
(1) vaya a su ruta sdk de Android y encuentre zipalign, generalmente está en android-sdk \ build-tools \ 23.0.3
(2) Copie el archivo zipalign y péguelo en la carpeta de generar apk de la versión, generalmente en la siguiente ruta
yourproject / plataformas / android / ant-build / Example-release-unsigned.apk
O
Ahora tenemos nuestro binario de lanzamiento final llamado example.apk y podemos lanzarlo en Google Play Store.
fuente
Para Windows, he creado un
build.cmd
archivo:(reemplace la ruta del almacén de claves y el alias)
Para Córdoba:
Y para Ionic:
Guárdelo en el directorio del ptoject, puede hacer doble clic o abrirlo con cmd.
fuente