Saltar al contenido

Firmar el apk para subirlo a Google Play Store #Ionic #Cordova

signingapk

Os podéis imaginar que en esta entrada vamos a firmar el apk para subirlo a Google Play como el título del artículo indica . Vamos a ver como producir un fichero .apk firmado para poder subirlo a Google play Store.

Una vez que hemos desarrollado nuestra apk, y que hemos testado hasta el último detalle vamos a dar el paso de firmar la aplicación para poder subirla al Google Play Store, al que pueden tener acceso los millones de usuarios de Android.

Para subirla al Play Store las Apks Android tienes que estar firmadas, todos y cada uno de los APK se firmarán digitalmente con un certificado para poder instalarse en el móvil del usuario.

Cuando firmas un APK se anexa a este Apk el certificado de clave pública que asocia el APK contigo y con tu clave privada que has generado durante el proceso. Esto es preciso para poder lanzar cualquier actualización de la aplicación asegurándose que proceda del autor original, de ahí que es muy importante que guardemos el fichero keystore generado a buen recaudo para poder lanzar futuras actualizaciones puesto que todas y cada una de las aplicaciones deben utilizar exactamente el mismo certificado a lo largo de su vida útil. Si pierdes el fichero keystore que has generado y quieres firmar una actualización con otra keystore tendrás un problema grande.

Vale, bien, ¿¿ pero que es un keystore ?? Un keystore es un campo binario que contiene una o bien varias claves privadas.

Si desarrollas una aplicación nativa puedes producir el keystore y firmar el apk desde Android studio, pero en esta entrada veremos como firmar una aplicación generada desde Ionic o bien desde la consola con Apache cordova.

signingapk

Cómo firmar el Apk desde la consola

Para poder firmar el apk desde consola debemos continuar una serie de pasos que veremos a continuación:

La primera cosa que vamos a necesitar es producir el keystore:

En este ejemplo nuestra aplicación va a tener el nombre superApp (qué es el nombre que le doy a todos mis proyectos serios 😉 ) , bien, pues vamos a producir el keystore, primero abrimos una terminal, nos ubicamos en la carpeta donde esté nuestro proyecto y escribimos el comando keytool …

Sería algo así:

keytool -genkey -v -keystore superApp.keystore -alias superApp -keyalg RSA -validity 5 -keysize 2048

Esto generará un fichero .keystore con el nombre de la aplicación, algo así.
superApp.keystore que será el fichero que en el que se guardará tu keystore, el alias es un nombre de identificación para tu clave, en un caso así le hemos llamado superApp, pero puedes ponerle otro nombre.

Con el parámetro -validity fijamos el periodo de valía de tu clave en años, en este caso le hemos puesto 5 años.

Para finalizar con el parámetro -keysize le señalamos que el tamaño de la clave sea de dos mil cuarenta y ocho bits, es recomendable dejarlo en este valor.

Al ejecutar este comando nos solicita que introduzcamos una serie de datos (algunos un poco absurdos si no tienes organización):

Introduzca la clave de acceso del almacén de claves:

Regresar a redactar la clave de acceso nueva:

Introduzca la contraseña del almacén de claves:
Volver a escribir la contraseña nueva:
¿Cuáles son su nombre y su apellido?
¿Cuál es el nombre de su unidad de organización?
¿Cuál es el nombre de su organización?
¿Cuál es el nombre de su ciudad o localidad?
¿Cuál es el nombre de su estado o provincia?
¿Cuál es el código de país de dos letras de la unidad?

Durante el proceso te solicita un par de veces la clave de acceso, es esencial que recuerdes la clave de acceso que has introducido puesto que la vas a necesitar más adelante.

Al final te enseña los datos que has introducido y te solicita confirmación, le afirmamos que si, o si quieres repetir el proceso le decimos que no:

Aquí ya tendremos generado nuestro keystore, con esto ya hemos generado un fichero llamado superApp.keystore en la raiz de nuestro proyecto.

Ahora crearemos un nuevo fichero en la raiz del proyecto llamado build.json, lo creamos con nuestro editor de código y dentro escribimos el próximo código:

{
"android": {
"debug": {
"keystore": "superApp.keystore",
"storePassword": "3lpassword",
"alias": "superApp",
"password" : "tuSuperPassword",
"keystoreType": ""
},
"release": {
"keystore": "superApp.keystore",
"storePassword": "3lpassword",
"alias": "superApp",
"password" : "tuSuperPassword",
"keystoreType": ""
}
}
}

 

El primero es para la versión de debug y el segundo para la versión liberada, o lo que es lo mismo para la versión final que subirás a la Play Store.

En el campo keystore debes poner el path del fichero .keystore que terminamos de producir, si lo has generado en la raíz solo debes poner el nombre del fichero, en un caso así superApp.keystore.

En alias ponemos el alias que hemos puesto al crear el fichero.

Después en storePassword debe poner la clave de acceso del almacén de claves que señalaste al crear el fichero.

En contraseña debemos poner la clave de acceso.

Guardamos el fichero y ya solo nos queda producir el apk firmado con el próximo comando:

ionic cordova build android --release

Si no se han detectado fallos ni problemas y se ha compilado bien, te mostrará un letrero de successfull, y entonces podrás localizar el apk firmado que debes subir a play store en la ruta de tu aplicación:

/platforms/android/build/outputs/apk/android-release.apk

Y listo, ¿ha sido fácil? con esto ya podrás tener tu apk en el Play Store.

play store

Si tienes cualquier duda no dudes en dejar un comentario en el blog y te responderemos lo antes posible. 😉