¿Cómo puedo crear una aplicación de Android localmente usando la CLI de Phonegap 3.x, lista para su lanzamiento? Verifico la carpeta bin generada dentro del directorio de plataformas / android del proyecto, y solo tiene APK .debug.
Por cierto, uso este comando: phonegap local build android
fuente
<application android:debuggable="true"...
que cambiar a<application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build
En PhoneGap 3.4.0 puede llamar a:
Si ha configurado el archivo 'ant.properties' en el directorio 'plataformas / android' como el siguiente:
Luego, se le pedirá su contraseña de almacén de claves y el archivo de salida (myapp-release.apk) termina en el directorio 'plataformas / android / ant-build' ya firmado y alineado y listo para implementar.
fuente
ant.properties
enplatforms/android
y acaba de caer estas dos propiedades en ella. Funciona perfectamente, gracias!En Córdoba 6.2.0
Respuesta anterior:
Según cordova 5.0.0
y ejecutar
./build --release --buildConfig build.json
desde el directorioplatforms/android/cordova/
La ubicación del archivo de almacén de claves es relativa a
platforms/android/cordova/
, por lo que en el.keystore
archivo de configuración anterior ybuild.json
están en el mismo directorio.keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
fuente
Siguiendo a @ steven-anderson también puede configurar contraseñas dentro de ant.properties, por lo que el proceso puede ser completamente automatizado
así que si pones en la plataforma \ android \ ant.properties lo siguiente
fuente
Me pregunté mucho porque tuve el mismo problema, pero en mi instalación, el comando "cordova" nunca estuvo disponible y "phone gap build android --release" simplemente ignoró 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 de "compilación" que aceptaba el argumento --release, me pidió los llaveros y terminé con un archivo firmado y listo para la producción APK.
esto nunca se documentó en ninguna parte del sitio de la brecha telefónica y, francamente, ahora odio un poco la brecha telefónica :( se suponía que iba a facilitar las cosas, pero todo era simplemente complicado :(
fuente
Estos pasos funcionarían para Cordova, PhoneGap o Ionic. La única diferencia sería, donde sea que
cordova
se coloque una llamada a , reemplazarla conphonegap
oionic
, para su escenario particular.Una vez que haya terminado con el desarrollo y esté listo para implementar, siga estos pasos:
Abra una ventana de línea de comando (Terminal en macOS y Linux O Símbolo del sistema en Windows).
Dirígete a / ruta / a / tu / proyecto /, al que nos referiríamos como la raíz del proyecto.
Mientras esté en la raíz del proyecto, elimine el complemento "Consola" de su conjunto de complementos.
El comando es:
cordova plugin rm cordova-plugin-console
Mientras aún está en la raíz del proyecto, use el comando cordova build para crear un APK para la distribución de la versión.
El comando es:
cordova build --release android
El proceso anterior crea un archivo llamado
android-release-unsigned.apk
en la carpetaProjectRoot/platforms/android/build/outputs/apk/
Firme y alinee el APK usando las instrucciones en https://developer.android.com/studio/publish/app-signing.html#signing-manually
Al final de este paso, el APK que obtiene se puede cargar en Play Store .
Nota: como novato o principiante, el último paso puede resultar un poco confuso para mí. Uno puede encontrarse con algunos problemas y puede tener algunas preguntas sobre qué son estos comandos y dónde encontrarlos.
Q1. ¿Qué son jarsigner y keytool ?
Respuesta: Las instrucciones de firma de la aplicación de Android le dicen específicamente de qué se tratan jarsigner y keytool, PERO no le dice dónde encontrarlos si se encuentra con un 'error de comando no encontrado' en la ventana de línea de comando.
Por lo tanto, si tiene el Kit de desarrollo de Java (JDK) agregado a su variable PATH , simplemente ejecutar los comandos como en la Guía funcionaría. PERO, si no lo tiene en su RUTA, siempre puede acceder a ellos desde la carpeta bin de su instalación de JDK.
Q2. ¿Dónde está zipalign ?
Respuesta: Existe una alta probabilidad de no encontrar el comando zipalign y recibir el 'error de comando no encontrado'. Probablemente estarías buscando en Google zipalign y ¿dónde encontrarlo?
La utilidad zipalign está presente en la carpeta de instalación del SDK de Android. En MacOS, la ubicación predeterminada está en,
user-name/Library/Android/sdk/
. Si se dirige a la carpeta que puedes encontrar un montón de otras carpetas comodocs
,platform-tools
,build-tools
,tools
,add-ons
...Abrir la
build-tools
carpeta.cd build-tools
. Aquí, habría una serie de carpetas que están versionadas de acuerdo con la cadena de herramientas de compilación que está utilizando en Android SDK Manager. ZipAlignestá disponible en cada una de estas carpetas. Yo personalmente busco la carpeta con la última versión. Abra Cualquiera.En macOS o Linux, es posible que deba usar en
./zipalign
en lugar de simplemente escribirzipalign
como menciona la documentación. En Windows,zipalign
es lo suficientemente bueno.fuente
Conseguí que esto funcionara copiando y pegando la aplicación firmada en el mismo directorio que zipalign. Parece que aapt.exe no pudo encontrar el archivo de origen incluso cuando se le proporcionó la ruta. es decir, esto no funcionó zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk alcanzó aapt.exeCordovaApp-release-unsigned.apk, se congeló y al presionar regresar 'aapt.exeCordovaApp-release-unsigned.apk' no se reconoce como un comando interno o externo, programa operable o archivo por lotes. Y esto hizo zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
fuente
Sé que esta pregunta se refiere específicamente a Phonegap 3.X, pero solo como referencia, cualquier versión de Phonegap superior a 4.0.0 usa Gradle en lugar de Ant para compilar de forma predeterminada. Para usar Ant en lugar de Gradle, puede agregar esto a su config.xml:
Al usar Gradle, la información de firma del almacén de claves ahora debe 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 coloque dentro del siguiente contenido:
fuente
Puede probar este comando, debería compilar y ejecutar la aplicación (por lo que debería crearse .apk):
phonegap local run android
fuente