"Grab a Coin to Win" disponible para Android. Y cómo publicar en Google Play las aplicaciones hechas en Haxe

Nota: Esta entrada fue publicada el 9 oct de 2015 @ 07:32 en un blog que tenía anteriormente en Wordpress, y republicada aquí para el record.


Grab a Coin to Win

El día de ayer por fin adquirí la licencia de desarrollador de Android (y la de iOS), así que lo primero que quise hacer fue publicar mi jueguito Grab a Coin to Win. Mi ingenuidad me hizo pensar que sólo tenía que subir el archivo.apk ... estaba muy equivocado.

Por cuestiones de seguridad, Google te exige que firmes electrónicamente las aplicaciones, esto es para evitar que alguien distribuya malware en tu nombre. Es un proceso bastante sencillo en realidad, pero me costó un poco encontrar información específicamente para Haxe y Lime.

Firmar el APK

Primero se debe generar el archivo de llaves, para esto se utiliza keytool , que está incluido en el JDK. Los parámetros recomendados por Google son los siguientes:

keytool -genkey -v -keystore TU_ARCHIVO_DE_LLAVES.keystore -alias TU_ALIAS -keyalg RSA -keysize 2048 -validity 10000

donde TU_ARCHIVO_DE_LLAVES es el nombre que le quieres poner al archivo que keytool generará, y TU_ALIAS es el nombre de usuario que quieres usar para acceder al archivo (pueden ser lo que sea, pero es importante que los recuerdes). keytool te hará una serie de preguntas y pedirá una contraseña, que tampoco debes olvidar.

Después tienes que agregar la siguiente línea a tu project.xml:

<certificate path="TU_ARCHIVO_DE_LLAVES.keystore" alias="TU_ALIAS" password="TU_CONTRASEÑA" if="android" unless="debug"/>

(reemplazando las mayúsculas con tus datos).

Si usas Git, obviamente no quieres añadir estos datos al repositorio público, por lo que deberías añadir

*.keystore

a tu .gitignore. En cuanto al project.xml, es buena idea mantener este archivo sin la línea del certificado y crear otro archivo project-PRIVATE.xml con las mismas líneas incluida la del certificado, para que el proyecto pueda ser usado sin el certificado, pero sólo pueda ser firmado por quienes lo posean. Entonces, a la hora de compilar para producción, se deberá usar el comando

lime build project-PRIVATE.xml android