Construye android release apk en Phonegap 3.x CLI

¿Cómo puedo construir una aplicación de Android localmente con la CLI Phonegap 3.x, lista para lanzar? Compruebo la carpeta bin generada dentro del directorio plataformas / android del proyecto, y sólo tiene APKs .debug.

Por cierto, utilizo este comando: phonegap local build android

Esto es para Phonegap 3.0.x a 3.3.x. Para PhoneGap 3.4.0 y versiones superiores vea a continuación .

Encontramos parte de la respuesta aquí , en la documentación de Phonegap. El proceso completo es el siguiente:

  1. Abra una ventana de línea de comandos y vaya a / path / to / your / project / platforms / android / cordova .

  2. Ejecutar build --release . Esto crea una APK no firmada en la carpeta / path / to / your / project / platforms / android / bin , denominada YourAppName-release-unsigned.apk.

  3. Firme y alinee el APK utilizando las instrucciones en los documentos oficiales del desarrollador android .

Gracias a @LaurieClark por el enlace ( http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- Android-projects / ), y el blogger que lo publica, porque me puso en la pista.

En PhoneGap 3.4.0 puede llamar a:

 cordova build android --release 

Si ha configurado el archivo 'ant.properties' en el directorio 'plataformas / android' como el siguiente:

 key.store=/Path/to/KeyStore/myapp-release-key.keystore key.alias=myapp 

A continuación, se le pedirá la contraseña de su almacén de claves y el archivo de salida (myapp-release.apk) terminará en el directorio 'plataformas / android / ant-build' ya firmado y alineado y listo para implementarse.

En Córdoba 6.2.0

 cd cordova/ #change to root cordova folder platforms/android/cordova/clean #clean if you want cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any 

Respuesta anterior:

Según cordova 5.0.0

 { "android": { "release": { "keystore": "app-release-key.keystore", "alias": "alias_name" } } } 

Y ejecutar ./build --release --buildConfig build.json desde platforms/android/cordova/ directorio platforms/android/cordova/

Keystore es relativa a las platforms/android/cordova/ , por lo que en la configuración anterior .keystore file y build.json están en el mismo directorio.

keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Siguiendo a @ steven-anderson también puede configurar contraseñas dentro de la ant.properties, para que el proceso pueda ser totalmente automatizado

Por lo que si pone en plataforma \ android \ ant.properties el siguiente

 key.store=../../yourCertificate.jks key.store.password=notSoSecretPassword key.alias=userAlias key.alias.password=notSoSecretPassword 

Sólo me preguntaba en torno a un montón porque tengo el mismo problema, pero en mi instalación el comando "cordova" nunca estaba disponible y "phone gap build android –release" simplemente ignorado la plataforma / android / ant.properties.

Así que mirando dentro de mi filtro de plataforma encontré una carpeta llamada "cordova" y dentro de ella había un binario "build" que aceptó el argumento –release, me pidió las cadenas de claves y terminé con un firmado y listo para la producción APK.

Esto nunca fue documentado en ninguna parte de la brecha telefónica sitio y francamente hablando ahora un poco odio phonegap 🙁 se suponía que hacer las cosas más fáciles, pero todo era simplemente complicado 🙁

Conseguí esto trabajar por la copia que pega la aplicación firmada en el mismo dir que zipalign. Parece que aapt.exe no pudo encontrar el archivo de origen incluso cuando se le dio la ruta de acceso. Esto no funcionó zipalign -f -v 4 C: … \ CordovaApp-release-unsigned.apk C: … \ destination.apk llegó aapt.exeCordovaApp-release-unsigned.apk, se congeló y al volver a golpear 'Aapt.exeCordovaApp-release-unsigned.apk' no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes. Y esto hizo zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk

Sé que esta pregunta pregunta sobre Phonegap 3.X específicamente, pero apenas para la referencia cualquier versión de Phonegap sobre 4.0.0 utiliza Gradle en vez de Ant para construir por abandono. Para usar Ant en lugar de Gradle puedes agregar esto a tu config.xml:

 <preference name="android-build-tool" value="ant" /> 

Cuando use Gradle, la información de firma de keystore ahora necesita ir a una nueva ubicación ( como se describe en esta publicación ). Cree un nuevo archivo llamado ' release-signing.properties ' en la misma carpeta que el archivo "build.gradle" y colóquelo en el siguiente contenido:

 storeFile=..\\..\\some-keystore.keystore storeType=jks keyAlias=some-key // if you don't want to enter the password at every build, you can store it with this keyPassword=your-key-password storePassword=your-store-password 

Usted podría intentar este comando, debe construir y ejecutar la aplicación (para que .apk debe ser creado):

phonegap local run android

  • Error de PhoneGap - "Uncaught ReferenceError: cordova no está definido"
  • La creación del teléfono no muestra la pantalla de bienvenida
  • Phonegap - Pantalla Splash para Android - Logotipo del Centro
  • Ionic nav-view y recursos externos
  • Error Phonegap android sdk build.xml: 950: nulo devuelto: 1
  • Ionic / cordova sudo ionic plataforma añadir android no funciona
  • Problemas con la autenticación de formularios ASP.NET en Phonegap (Android)
  • Secuencia o encabezado de agente de usuario personalizado sin modificar las librerías de cordova
  • Cordova Error en la compilación sólo para Android: com.android.dex.DexException: Varios archivos dex definen Landroid / support / annotation / AnimRes;
  • ¿Cómo descargar un archivo desde FTP y almacenarlo localmente con Cordova?
  • Phonegap - No se puede abrir la URL del recurso: file: ///android_asset/www/cordova_plugins.json
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.