Esta es el arreglo más acertada que te podemos aportar, pero obsérvala detenidamente y analiza si es compatible a tu trabajo.
Solución:
Paso 1:
D:projectsPhonegapExample> cordova plugin rm org.apache.cordova.console --save
añade el --save
para que elimine el complemento de la config.xml
expediente.
Paso 2:
Para generar una versión de versión para Android, primero debemos realizar un pequeño cambio en el AndroidManifest.xml
archivo encontrado en plataformas / android. Edite el archivo y cambie la línea:
y cambio android:debuggable
para false
:
A partir de cordova 6.2.0, elimine completamente la etiqueta android: debuggable. Aquí está la explicación de Córdoba:
Explicación para problemas de tipo “HardcodedDebugMode”: es mejor dejar fuera el android: debuggable attribute del manifiesto. Si lo hace, las herramientas insertarán automáticamente android: debuggable =true
al compilar un APK para depurarlo en un emulador o dispositivo. Y cuando realiza una compilación de lanzamiento, como Exportar APK, se configurará automáticamente en false.
Si, por otro lado, especifica un valor específico en el archivo de manifiesto, las herramientas siempre lo usarán. Esto puede provocar la publicación accidental de su aplicación con información de depuración.
Paso 3:
Ahora podemos decirle a cordova que genere nuestra versión de lanzamiento:
D:projectsPhonegapExample> cordova build --release android
Luego, podemos encontrar nuestro archivo APK sin firmar en platforms/android/ant-build
. En nuestro ejemplo, el archivo fue platforms/android/ant-build/Example-release-unsigned.apk
Paso 4:
Nota: tenemos nuestro almacén de claves keystoreNAME-mobileapps.keystore
en este Git Repo, si desea crear otro, proceda con los siguientes pasos.
Generación de claves:
Sintaxis:
keytool -genkey -v -keystore .keystore -alias -keyalg -keysize -validity
Huevos:
keytool -genkey -v -keystore NAME-mobileapps.keystore -alias NAMEmobileapps -keyalg RSA -keysize 2048 -validity 10000
keystore password? : xxxxxxx
What is your first and last name? : xxxxxx
What is the name of your organizational unit? : xxxxxxxx
What is the name of your organization? : xxxxxxxxx
What is the name of your City or Locality? : xxxxxxx
What is the name of your State or Province? : xxxxx
What is the two-letter country code for this unit? : xxx
Luego, la tienda de claves se ha generado con el nombre NAME-mobileapps.keystore
Paso 5:
Coloque el almacén de claves generado en
cordova versión antigua
D:projectsPhonegapExampleplatformsandroidant-build
Nueva version cordova
D:projectsPhonegapExampleplatformsandroidbuildoutputsapk
Para firmar el APK sin firmar, ejecute la herramienta jarsigner que también se incluye en el JDK:
Sintaxis:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore
Huevos:
D:projectsPhonegapExampleplatformsandroidant-build> jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore NAME-mobileapps.keystore Example-release-unsigned.apk xxxxxmobileapps
O
D:projectsPhonegapExampleplatformsandroidbuildoutputsapk> jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore NAME-mobileapps.keystore Example-release-unsigned.apk xxxxxmobileapps
Enter KeyPhrase as 'xxxxxxxx'
Esto firma la apk en su lugar.
Paso 6:
Finalmente, necesitamos ejecutar la herramienta de alineación zip para optimizar el APK:
D:projectsPhonegapExampleplatformsandroidant-build> zipalign -v 4 Example-release-unsigned.apk Example.apk
O
D:projectsPhonegapExampleplatformsandroidant-build> C:Phonegapadt-bundle-windows-x86_64-20140624sdkbuild-toolsandroid-4.4Wzipalign -v 4 Example-release-unsigned.apk Example.apk
O
D:projectsPhonegapExampleplatformsandroidbuildoutputsapk> C:Phonegapadt-bundle-windows-x86_64-20140624sdkbuild-toolsandroid-4.4Wzipalign -v 4 Example-release-unsigned.apk Example.apk
Ahora tenemos nuestro binario de lanzamiento final llamado example.apk y podemos publicarlo en Google Play Store.
Una actualización de @malcubierre para Cordova 4 (y posterior) –
Crea un archivo llamado release-signing.properties
y poner en APPFOLDERplatformsandroid
carpeta
Contenido del archivo: editar después = para todos excepto la segunda línea
storeFile=C:/yourlocation/app.keystore
storeType=jks
keyAlias=aliasname
keyPassword=aliaspass
storePassword=password
Entonces este comando debería crear una versión de lanzamiento:
cordova build android --release
ACTUALIZACIÓN: esto no me funcionó Cordova 10 with android 9
– La compilación reemplazaba el archivo release-signing.properties. Tuve que hacer un build.json
y suéltelo en la carpeta de la aplicación, al igual que root. Y este es el contenido: reemplácelo como se indicó anteriormente:
"android":
"release":
"keystore": "C:/yourlocation/app.keystore",
"storePassword": "password",
"alias": "aliasname",
"password" : "aliaspass",
"keystoreType": ""
Ejecútelo y generará uno de esos release-signing.properties
en la carpeta de Android
En la documentación actual podemos especificar un build.json con el almacén de claves:
"android":
"debug":
"keystore": "..android.keystore",
"storePassword": "android",
"alias": "mykey1",
"password" : "password",
"keystoreType": ""
,
"release":
"keystore": "..android.keystore",
"storePassword": "",
"alias": "mykey2",
"password" : "password",
"keystoreType": ""
Y luego, ejecute el comando con –buildConfig argumente, de esta manera:
cordova run android --buildConfig
Si posees alguna cuestión y disposición de aumentar nuestro enunciado eres capaz de escribir una anotación y con gusto lo analizaremos.