Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

Cómo preparar el lanzamiento

A fin de preparar tu app para el lanzamiento, debes configurar, compilar y probar una versión de lanzamiento. Las tareas de configuración son claras y directas, y consisten en la limpieza y modificación básicas de código que ayudan a optimizar tu app. El proceso de compilación es similar al de depuración y puede realizarse con herramientas de JDK y el SDK de Android. Las tareas de prueba sirven a modo de comprobación final, lo cual garantiza que el desempeño de la app sea el que se espera en condiciones reales. Cuando terminas de preparar tu app para el lanzamiento, tienes un archivo APK firmado que puedes distribuir directamente a los usuarios o a través de una tienda de apps como Google Play.

En este documento, se resumen las tareas principales que debes realizar a fin de preparar tu app para el lanzamiento. Las tareas que se describen en este documento se aplican a todas las apps de Android sin importar cómo se lancen o distribuyan a los usuarios. Si deseas lanzar tu app mediante Google Play, asegúrate de leer la lista de tareas de lanzamiento de Google Play.

Nota: Como práctica recomendada, tu app debe cumplir con todos tus criterios de lanzamiento relacionados con la funcionalidad, el rendimiento y la estabilidad antes de realizar las tareas que se describen en este documento.

Se muestra la manera en que el proceso de preparación se adecua al proceso de desarrollo

Figura 1: El proceso de preparación para el lanzamiento es una tarea de desarrollo obligatoria y es el primer paso en el proceso de publicación

Introducción

A fin de que tu app esté disponible para los usuarios, debes crear un paquete listo para el lanzamiento que estos puedan instalar y ejecutar en sus dispositivos Android. El paquete listo para el lanzamiento contiene los mismos componentes que el archivo SDK de depuración (código fuente compilado, recursos, archivo de manifiesto y otros) y se compila usando las mismas herramientas de compilación. Sin embargo, a diferencia del archivo APK de depuración, el archivo APK listo para el lanzamiento se firma con tu propio certificado y se optimiza con la herramienta zipalign.

Se muestran las cinco tareas que debes realizar a fin de preparar tu app para el lanzamiento

Figura 2: Debes cumplir con cinco tareas principales a fin de preparar tu app para el lanzamiento

Las tareas de firma y optimización normalmente no presentan interrupciones si compilas tu app con Android Studio. Por ejemplo, puedes usar Android Studio con los archivos de compilación de Gradle para compilar, firmar y optimizar tu app en un solo paso. Además, puedes configurar los archivos de compilación de Gradle para que hagan lo mismo cuando realices compilaciones desde la línea de comandos. Para obtener más información sobre cómo usar los archivos de compilación de Gradle, consulta la guía Sistema de compilación.

A fin de preparar tu app para el lanzamiento, por lo general debes realizar cinco tareas principales (consulta la figura 2). Cada tarea principal puede incluir una o más tareas más pequeñas según la forma en que lances tu app. Por ejemplo, si lanzas tu app a través de Google Play, tal vez te convenga agregar reglas especiales de filtrado a tu manifiesto mientras configuras tu app para el lanzamiento. Del mismo modo, para cumplir con las pautas de publicación de Google Play, quizás debas preparar capturas de pantalla y crear texto promocional mientras recopilas el material para el lanzamiento.

Normalmente, realizarás las tareas enumeradas en la figura 2 después de haber depurado y probado tu app. El SDK de Android incluye varias herramientas para ayudarte a probar y depurar tus apps de Android. Para obtener más información, consulta las secciones Depuración y Pruebas de la guía para desarrolladores.

Cómo recopilar materiales y recursos

A fin de comenzar a preparar tu aplicación para el lanzamiento, debes reunir varios elementos secundarios. Como mínimo, esto incluye claves criptográficas para firmar tu app y un ícono de la app. Probablemente, también te convenga incluir un contrato de licencia para el usuario final.

Claves criptográficas

El sistema Android requiere que cada app que se instale esté firmada digitalmente con un certificado que pertenece al desarrollador de la app (es decir, un certificado para el cual el desarrollador posea una clave privada). El sistema Android usa el certificado para identificar al autor de una app y establecer relaciones de confianza entre apps. No es necesario que el certificado que usas para firmar esté firmado por una autoridad certificada. El sistema Android te permite firmar tus apps con un certificado autofirmado. Para obtener más información sobre los requisitos de certificación, consulta Cómo firmar tus apps.

Importante: Tu app debe estar firmada con una clave criptográfica cuyo período de validez termine después del 22 de octubre de 2033.

Además, es posible que también debas obtener otras claves de lanzamiento si tu app accede a un servicio o utiliza una biblioteca de terceros que requiera el uso de una clave basada en tu clave privada.

Ícono de la aplicación

Asegúrate de contar con un ícono de la app y de que cumpla con las pautas para íconos recomendadas. El ícono de tu app ayuda a los usuarios a identificarla en la pantalla principal de un dispositivo y en la ventana del Launcher. También aparece en "Administrar aplicaciones", "Mis descargas" y en otras secciones. Además, los servicios de publicación, como Google Play, muestran tu ícono a los usuarios.

Nota: Si lanzas tu app en Google Play, debes crear una versión del ícono en alta resolución. Para obtener más información, consulta Recursos gráficos para tu app.

Contrato de licencia para el usuario final

Considera crear un contrato de licencia para el usuario final (CLUF) para tu app, ya que te ayudará a proteger tu persona, organización y propiedad intelectual. Por eso, te recomendamos que incluyas uno con tu aplicación.

Otros materiales

Es posible que también te convenga preparar materiales promocionales y de marketing para publicitar tu app. Si lanzas una app en Google Play, por ejemplo, deberás preparar texto promocional y crear capturas de pantalla de tu app. Para obtener más información, consulta Recursos gráficos para tu app.

Cómo configurar tu app para el lanzamiento

Luego de recopilar todo el material complementario, puedes comenzar a configurar tu app para el lanzamiento. En esta sección, se ofrece un resumen de los cambios de configuración que te recomendamos hacer en tu código fuente, en archivos de recursos y en el manifiesto de tu app antes de lanzarla. A pesar de que la mayoría de los cambios de configuración que se nombran en esta sección son opcionales, se consideran como buenas prácticas de programación y te recomendamos implementarlos. En algunos casos, es posible que hayas hecho algunos de estos cambios de configuración como parte de tu proceso de desarrollo.

Elige un nombre de paquete efectivo

Asegúrate de elegir un nombre efectivo para el paquete, que sea apropiado para toda la vida útil de tu app. No puedes cambiarlo luego de distribuir tu app a los usuarios. Puedes establecer el nombre del paquete en el archivo de manifiesto de tu app. Para obtener más información, consulta la documentación del atributo package.

Cómo desactivar el registro y la depuración

Asegúrate de desactivar el registro e inhabilitar la opción de depuración antes de compilar tu app para el lanzamiento. Puedes desactivar el registro si quitas las llamadas a los métodos Log en tus archivos de origen. Para inhabilitar la depuración, quita el atributo android:debuggable de la etiqueta <application> en tu archivo de manifiesto o establece el atributo android:debuggable en false en el archivo de manifiesto. Además, quita todos los archivos de registro o archivos de prueba estáticos que se crearon en tu proyecto.

También debes quitar todas las llamadas de rastreo de Debug que hayas agregado a tu código, como las llamadas a los métodos startMethodTracing() y stopMethodTracing().

Importante: Asegúrate de inhabilitar la depuración para tu app si usas WebView para mostrar contenido de pago o si usas interfaces JavaScript, ya que la depuración permite a los usuarios insertar secuencias de comandos y extraer contenido usando Chrome DevTools. Para desactivar la depuración, usa el método WebView.setWebContentsDebuggingEnabled().

Cómo limpiar los directorios de tu proyecto

Limpia tu proyecto y asegúrate de que cumpla con la estructura de directorios que se describe en Proyectos de Android. Dejar archivos sueltos o huérfanos en tu proyecto puede impedir que tu app se compile y hacer que se comporte de manera impredecible. Como mínimo, debes realizar las siguientes tareas de limpieza:

  • Revisa el contenido de los directorios jni/, lib/ y src/. El directorio jni/ solo debe contener archivos de origen asociados con el NDK de Android, como archivos .c, .cpp, .h y .mk. El directorio lib/ solo debe contener archivos de bibliotecas de terceros o privadas, incluidas las bibliotecas estáticas y compartidas que se hayan compilado previamente (por ejemplo, archivos .so). El directorio src/ solo debe contener archivos de origen para tu app (archivos .java y .aidl). El directorio src/ no debe contener ningún archivo .jar.
  • Busca en tu proyecto archivos de datos privados o de propietario que tu app no use, y quítalos. Por ejemplo, en el directorio res/ de tu proyecto busca archivos de elementos de diseño, archivos de diseño y archivos de valores antiguos que ya no uses, y bórralos.
  • En tu directorio lib/, busca bibliotecas de prueba y quítalas si ya no se usan en tu app.
  • Revisa el contenido de tu directorio assets/ y tu directorio res/raw/ en busca de archivos de recursos sin procesar y archivos estáticos que necesites actualizar o quitar antes del lanzamiento.

Cómo revisar y actualizar tu manifiesto, y la configuración de compilación de Gradle

Comprueba que la configuración del manifiesto y de los elementos de archivos de compilación siguientes sea correcta:

  • elemento <uses-permission>

    Debes especificar únicamente aquellos permisos que sean relevantes y requeridos por tu app.

  • atributos android:icon y android:label

    Debes especificar valores para estos atributos, que se encuentran en el elemento <application>.

  • atributos android:versionCode y android:versionName

    Recomendamos que especifiques valores para estos atributos, que se encuentran en el elemento <manifest>. Para obtener más información, consulta Cómo controlar las versiones de tus apps.

Existen varios elementos de archivos de manifiesto o compilación adicionales que puedes configurar si lanzas tu aplicación en Google Play. Por ejemplo, los atributos android:minSdkVersion y android:targetSdkVersion, que se encuentran en el elemento <uses-sdk>. Para obtener más información sobre estas configuraciones de Google Play y otras, consulta Filtros en Google Play.

Cómo tratar los problemas de compatibilidad

Android ofrece varias herramientas y técnicas para que tu app sea compatible con una amplia variedad de dispositivos. Si deseas que tus apps estén disponibles para la mayor cantidad de usuarios que sea posible, considera hacer lo siguiente:

  • Agrega compatibilidad para diferentes configuraciones de pantalla

    Asegúrate de cumplir con las prácticas recomendadas para la compatibilidad con diferentes pantallas. Cuando ofreces compatibilidad con diferentes configuraciones de pantalla, puedes crear una app que funcione de manera adecuada y se vea bien en cualquiera de los tamaños de pantalla con los que Android sea compatible.

  • Optimiza tu app para tablets con Android

    Si tu app está diseñada para dispositivos con versiones de Android anteriores a la 3.0, haz que sea compatible con dispositivos Android 3.0; para esto, sigue las pautas y prácticas recomendadas descritas en Cómo optimizar apps para Android 3.0.

  • Considera el uso de la biblioteca de compatibilidad

    Si tu app está diseñada para dispositivos con Android 3.x, haz que sea compatible con versiones anteriores de Android; para esto, agrega la biblioteca de compatibilidad al proyecto de tu app. La biblioteca de compatibilidad ofrece bibliotecas estáticas que puedes agregar a tu app para Android. Esto te permite usar las API que no estén disponibles para versiones de plataformas más antiguas o las API de utilidades que no formen parte de las API del marco de trabajo.

Cómo actualizar las URL para servidores y servicios

Si tu app accede a servidores o servicios remotos, asegúrate de usar la URL de producción o la ruta de acceso para el servidor o servicio, y no una URL o ruta de acceso de prueba.

Cómo implementar licencias (si lanzas tu app en Google Play)

Si lanzas una app de pago a través de Google Play, considera agregar compatibilidad con el servicio de licencias de Google Play. Las licencias te permiten controlar el acceso a tu app según el usuario actual la haya comprado o no. El uso del servicio de licencias de Google Play es opcional incluso si lanzas tu app a través de Google Play.

Para obtener más información sobre el servicio de licencias de Google Play y sobre la manera de usarlo en tu app, consulta Licencias para aplicaciones.

Cómo compilar tu app para el lanzamiento

Cuando termines de configurar tu app, puedes compilarla en un archivo APK listo para el lanzamiento, firmado y optimizado. El JDK incluye las herramientas para firmar el archivo APK (Keytool y Jarsigner); el SDK de Android incluye las herramientas para compilar y optimizar el archivo APK. Si usas Android Studio o el sistema de compilación de Gradle desde la línea de comandos, puedes automatizar el proceso completo. Para obtener más información sobre cómo compilar configuraciones de Gradle, consulta Cómo configurar compilaciones de Gradle.

Cómo compilar con Android Studio

Puedes usar el sistema de compilación de Gradle, integrado con Android Studio, para compilar un archivo APK listo para el lanzamiento que esté optimizado y firmado con tu clave privada. Para aprender a configurar y ejecutar compilaciones desde Android Studio, consulta Cómo compilar y ejecutar desde Android Studio.

El proceso de compilación prevé que tienes un certificado y una clave privada adecuados para firmar tu app. Si no tienes un certificado y una clave privada adecuados, Android Studio puede ayudarte a generarlos. Para obtener más información sobre el proceso de firma, consulta Cómo firmar tus apps.

Cómo preparar recursos y servidores externos

Si tu app depende de un servidor remoto, asegúrate de que el servidor esté protegido y configurado para usarse en la producción. Esto es muy importante si implementas la facturación integrada en la app y realizas el paso de verificación de firma en un servidor remoto.

Además, si tu app toma contenido de un servidor remoto o un servicio en tiempo real (como una fuente de contenido), asegúrate de que el contenido que proveas esté actualizado y listo para la producción.

Cómo probar tu app para el lanzamiento

Probar la versión de lanzamiento de tu app te ayuda a garantizar que se ejecute correctamente en condiciones realistas de dispositivos y redes. Lo ideal sería que pruebes tu app en al menos un dispositivo con el tamaño de un teléfono y uno con el de una tablet para verificar que los elementos de tu interfaz de usuario tengan el tamaño correcto y que el rendimiento de tu app y el ahorro de batería sean aceptables.

Como punto de partida para la prueba, consulta Qué aspectos se deben probar. En este artículo, se ofrece un resumen de las situaciones comunes de Android que deberías tener en cuenta cuando realices pruebas. Cuando termines con las pruebas y estés satisfecho con el comportamiento de la versión de lanzamiento de tu app, puedes lanzarla para los usuarios. Para obtener más información, consulta Cómo lanzar tu app para los usuarios. Si publicas tu app en Google Play, consulta la lista de tareas para el lanzamiento en Google Play.