You are on page 1of 11

CURSO DE DESARROLLO DE APLICACIONES ANDROID

Tema 19

Publicar en Google Play


TEMA 19. PUBLICAR EN GOOGLE PLAY

Introducción

Para publicar una aplicación en Google Play es necesario realizar una serie de pasos previos.
Primero, será necesario recopilar todos los materiales necesarios para el lanzamiento de la
aplicación. Esto incluye:

• Obtención de una clave criptográfica para firmar la aplicación.

• Alta como desarrollador en Google Play Developer Console


1
(https://play.google.com/apps/publish/) . Este registro, que implica la obtención de
una licencia de desarrollador, implica un único pago de 25 $ a través de una cuenta
Google Wallet que deberá poseer el desarrollador. En caso de querer vender
aplicaciones, suscripciones o productos virtuales, se deberá crear una cuenta Google
Wallet Merchant Account 2.

• Creación del icono de la aplicación (incluyendo una versión en alta resolución).

• Es aconsejable generar un archivo de Licencia de Usuario Final (EULA, en inglés).

• Opcionalmente, creación de textos promocionales, vídeos que muestren el uso de la


aplicación, capturas de pantalla e, incluso, una web que apoye y/o extienda las
funcionalidades de la aplicación.

A continuación, será necesario configurar la aplicación para el lanzamiento, antes de generar la


versión release:

• Se deberá escoger un buen nombre para el paquete principal (atributo package en el


manifiesto de la aplicación), ya que este nombre no podrá ser cambiado una vez se
publique la aplicación 3.

• Se desactivará el log de la aplicación eliminando las llamadas a los métodos de la clase


Log.

• Se desactivará la opción debug, eliminando, en caso de que exista, el atributo


android:debuggable del elemento <application> en el manifiesto de la aplicación,
o estableciendo su valor a false. Además, se borrará cualquier llamada a los métodos
de debug, startMethodTracing(), stopMethodTracing().

1
Se deberá proporcionar el nombre y apellidos del desarrollador, un email, un número de teléfono y un sitio web
(opcional), así como aceptar el Developer Distribution Agreement del país correspondiente.
2
Esta opción se encuentra, dentro de Google Play Developer Console, en Financial reports > Setup a Merchant
Account now.
3
Un cambio en el nombre del paquete implicará automáticamente que el sistema considere que la aplicación es
distinta, al instalarla en un dispositivo. Google Play sigue el mismo criterio.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 2


TEMA 19. PUBLICAR EN GOOGLE PLAY

• Se eliminará cualquier archivo estático de la aplicación que no sea usado como, por
ejemplo, los archivos de log.

• Se limpiarán los directorios del proyecto eliminando cualquier archivo que no se use
(imágenes de prueba, archivos en la carpeta res/raw/ usados para pruebas, etc.) Se
revisará que cada archivo esté en el directorio adecuado.

• Se revisará el manifiesto de la aplicación para que solo se soliciten los permisos


necesarios. Además, se deberán especificar los atributos android:icon,
android:label, android:versionCode (número entero incremental que identifica
internamente la versión de la aplicación), android:versionName (valor textual
utilizado para mostrar la versión al usuario y en Google Play. Suele tener el formato
A.B.C), android:minSdkVersion y android:targetSdkVersion.

• Se optimizará el código para maximizar la compatibilidad entre dispositivos. Es muy


aconsejable adaptar la aplicación para su visualización en diferentes configuraciones
de pantalla así como en tablets. Además, es aconsejable optimizar la aplicación para
dispositivos con Android 3.0 y añadir compatibilidad con dispositivos con versiones
previas, a través de la librería Support Library 4.

Por último, se compilará la aplicación en modo release, firmándola con la clave RSA generada a
través de un almacén de claves propio. Esta firma, que garantiza que la aplicación no es
maliciosa y que pertenece a un desarrollador conocido, es imprescindible para que Google Play
acepte publicar la aplicación 5.

4
Se puede consultar la referencia de esta librería en este enlace:
http://developer.android.com/intl/es/tools/extras/support-library.html
5
Una vez dado de alta como desarrollador, las aplicaciones firmadas son publicadas instantáneamente en Google
Play, sin que haya un proceso de revisión previo, como ocurre, por ejemplo, en la App Store de Apple.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 3


TEMA 19. PUBLICAR EN GOOGLE PLAY

Firma de aplicaciones con Eclipse

El sistema Android requiere que cualquier aplicación que sea instalada esté firmada
digitalmente con un certificado cuya clave privada esté en posesión del desarrollador de la
aplicación. Este certificado no tiene por qué estar firmado por una autoridad certificadora
(como la Casa de la Moneda) ya que Android permite el uso de certificados autofirmados.

Cuando Eclipse compila una aplicación y genera el paquete APK, automáticamente la firma con
una clave debug que es creada por las herramientas que acompañan a la SDK 6. Esta firma
permite que la aplicación sea instalada, en modo debug, en dispositivos físicos o en AVDs.
Además de firmar la aplicación, Eclipse también utiliza la herramienta zipalign para optimizar
el paquete APK final.

En el momento en el que una aplicación es instalada, el sistema comprueba la fecha de validez


de su certificado. Si el certificado ha caducado, la aplicación no será instalada. No obstante, si
el certificado caduca una vez haya sido instalada la aplicación, esta seguirá funcionando
normalmente.

Para publicar una aplicación en Google Play, es necesario que el certificado tenga un periodo
de validez que finalice después del 22/10/2033. De esta forma, Google asegura que la
aplicación podrá ser actualizada sin problemas en el futuro.

Firma en modo release

Como ya se ha mencionado, cuando la aplicación esté lista para ser publicada en Google Play,
se deberá:

1. Obtener una clave privada de desarrollador válida.


2. Compilar la aplicación en modo release.
3. Firmar la aplicación con la clave privada obtenida.
4. Optimizar el paquete APK final.

El Asistente para Exportación de Aplicaciones de Eclipse automatiza los pasos 2, 3 y 4.

6
Estas herramientas son Keytool y Jarsigner, también incluidas en la JDK, y que son utilizadas para gestionar
almacenes de claves y para firmar paquetes, respectivamente. Con Keytool, Eclipse genera la clave debug, con alias
y contraseña conocidos. Al compilar, Eclipse utiliza esta clave para firmar el paquete APK con la herramienta
Jarsigner. Como el alias y la contraseña de la clave son conocidos, Eclipse no pregunta al desarrollador por ellas
cada vez que compila la aplicación en modo debug.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 4


TEMA 19. PUBLICAR EN GOOGLE PLAY

Obtención de la clave privada de desarrollador

Para generar la clave privada de desarrollador, se deberá primero generar un almacén de


claves para así autofirmar la clave privada. Además, en sistemas operativos Windows, es
bastante aconsejable añadir la variable de entorno JAVA_HOME para que apunte al directorio
raíz de instalación de la JDK, o bien incluir en la variable de entorno PATH el directorio “bin/”.

La creación del almacén de claves release y de la clave privada se realizará a través de la


consola de comandos de Windows 7 (o terminal en Linux), y con la herramienta Keytool. Una
vez abierta dicha consola, se navegará hasta el directorio donde se desee crear el almacén de
claves (que será un archivo con extensión .keystore). Por ejemplo, se puede navegar hasta el
directorio del usuario “.android/” que ya contiene el almacén de claves debug
(debug.keystore)

Se introducirá el siguiente comando:

D:\<User>\.android>keytool -genkey -v -keystore my-release-key.keystore


–alias my_key -keyalg RSA -keysize 2048 -validity 10000

En el comando anterior se puede observar que se solicita al almacén de claves “my-release-


key.keystore” 8, que cree una clave con alias “my_key”. Además, el algoritmo de codificación de
la clave será RSA, tendrá un tamaño de 2048 bits (muy segura) y tendrá una validez de 10000
días (mínimo tiempo de validez recomendado).

Al pulsar Enter, la herramienta Keytool solicitará una serie de datos adicionales, que
identificarán al propietario de la clave privada:

• Contraseña del almacén de claves (con confirmación)


• Nombre y apellidos del desarrollador
• Nombre de la unidad de organización
• Nombre de la organización
• Nombre de la ciudad o localidad del desarrollador
• Nombre del estado o provincia
• Código del país (para España, se escribirá ES)

Una vez se hayan introducido esos datos adicionales, Keytool solicitará confirmación de los
mismos. Se escribirá “s” (o “y”, si el texto de la consola aparece en inglés) para confirmar los
datos. A continuación, Keytool generará el par de claves para el certificado autofirmado,

7
Menú de Inicio > Todos los programas > Accesorios > Símbolo del sistema, o bien Menú de Inicio > Ejecutar >
escribir “cmd” y pulsar Aceptar.
8
Si dicho almacén no existe, será creado.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 5


TEMA 19. PUBLICAR EN GOOGLE PLAY

solicitando la contraseña para la clave “my_key”, con confirmación (dicha contraseña puede
ser la misma que la del almacén de claves, aunque no es recomendable), y mostrando los
datos del certificado autofirmado recién generado.

Uso del Asistente para Exportación de Aplicaciones de Eclipse

Una vez se ha generado el almacén de claves y la clave privada, se podrá acceder en Eclipse,
pulsando con el botón derecho del ratón sobre la raíz del proyecto (en la vista Package
Explorer), al menú Export … > Android > Export Android Application

Pulsando Next, Eclipse solicitará la ubicación del proyecto que se exportará:

CURSO DE DESARROLLO DE APLICACIONES ANDROID 6


TEMA 19. PUBLICAR EN GOOGLE PLAY

A continuación, Eclipse solicitará la ubicación del almacén de claves que se ha generado


previamente así como la contraseña que se ha establecido para acceder al mismo:

La siguente pantalla, solicitará la clave privada, así como su contraseña:

CURSO DE DESARROLLO DE APLICACIONES ANDROID 7


TEMA 19. PUBLICAR EN GOOGLE PLAY

Por último, Eclipse solicitará la ubicación donde será generado el paquete APK de la aplicación,
en versión release:

Al pulsar Finish, Eclipse generará el paquete APK, ya optimizado, en la ubicación indicada.

CURSO DE DESARROLLO DE APLICACIONES ANDROID 8


TEMA 19. PUBLICAR EN GOOGLE PLAY

Una vez finalizada la exportación de la aplicación desde Eclipse, se habrá obtenido el paquete
APK firmado en modo release y optimizado. Este paquete será añadido a Google Play a través
de la cuenta de Google Developers que haya sido creada previamente. Al añadir la aplicación,
se solicitará el paquete APK (que no excederá los 50 MB) así como el idioma y el nombre de la
aplicación. Se podrá elegir entre subir directamente el paquete APK o bien preparar primero la
página de Google Play que mostrará la aplicación.

Al introducir el nombre de la aplicación y pulsar Preparar entrada de Play Store, se accederá al


siguiente formulario, donde deberán ser informados al menos los campos obligatorios
(marcados con *):

CURSO DE DESARROLLO DE APLICACIONES ANDROID 9


TEMA 19. PUBLICAR EN GOOGLE PLAY

CURSO DE DESARROLLO DE APLICACIONES ANDROID 10


TEMA 19. PUBLICAR EN GOOGLE PLAY

Una vez se haya preparado la entrada en Google Play y subido el paquete APK, la aplicación
estará lista para ser publicada.

Google Play Developer Console está en continua evolución, ofreciendo cada vez más opciones
para los desarrolladores como, por ejemplo, la posibilidad de añadir las diferentes
traducciones de la aplicación, establecer un precio (distinguiendo monedas y países), añadir
productos relacionados e, incluso, añadir el servicio de licencias de Google para evitar que la
aplicación sea plagiada. Este servicio de licencias permite ejecutar políticas de licencias para las
aplicaciones publicadas en Google Play. A través de este servicio, las aplicaciones pueden
realizar consultas a Google Play en tiempo de ejecución para obtener el estado de licencia para
el usuario actual y, a continuación, permitir o no el uso adicional (según corresponda).

Se puede obtener más información de este servicio en este enlace:

https://support.google.com/googleplay/android-developer/bin/answer.py?hl=es&answer=186113

CURSO DE DESARROLLO DE APLICACIONES ANDROID 11

You might also like