Acerca de Android App Bundle
¿Qué es Android App Bundle (AAB)?
Android App Bundle (AAB) se lanzó en 2018 y es un formato de publicación para Android compatible con Google Play y otras tiendas de aplicaciones, además de herramientas de compilación como Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity y Unreal.
¿Qué diferencia hay entre AAB y APK?
Los paquetes de aplicaciones solo se pueden publicar y no se pueden instalar en dispositivos Android. El paquete de Android (APK) es el formato instalable y ejecutable de Android para apps. Un distribuidor debe procesar los paquetes de aplicaciones y convertirlos en APK para que se puedan instalar en los dispositivos.
¿AAB es un formato de propiedad que solo se puede usar en Google Play?
No, AAB no es un formato de propiedad. El paquete de aplicación es de código abierto, por lo que es compatible con cualquier tienda de aplicaciones. Los paquetes son compatibles con Google Play y algunas otras tiendas de aplicaciones.
¿Crear un AAB impide que publique apps en otras tiendas?
No, no impide la publicación en otras tiendas de aplicaciones. Cuando compilas tu app, puedes compilar AAB y APK al mismo tiempo, según el formato de publicación que se requiera para cada tienda de aplicaciones.
¿Cuánto trabajo se requiere para usar un AAB?
Para la mayoría de las apps, compilar un AAB y un APK requieren el mismo esfuerzo, ya que solo implica elegir el AAB en lugar del APK durante el tiempo de compilación. Para ciertas apps, puede haber algunos cambios necesarios a fin de obtener todos los beneficios de los AAB.
¿Algún desarrollador ya usa AAB?
Sí. Más de un millón de apps y juegos usan paquetes de aplicaciones para publicar sus versiones de producción en Google Play, incluida la mayoría de las apps populares, que representan miles de millones de instalaciones activas. Si usas Google Play para instalar apps, muchas de las de tu dispositivo se publicaron como paquetes de aplicaciones.
¿AAB impide que los usuarios transfieran apps?
No, los AAB no impiden que los usuarios instalen APK de otras fuentes. Como AAB es solo un formato de publicación, no cambian la forma en que funciona la plataforma de Android.
Si un desarrollador usa AAB para proporcionar APK optimizados, ¿significa que es posible que los usuarios que comparten esos APK tengan problemas?
Siempre hay casos excepcionales en Android en los que los APK no se pueden transferir directamente de un dispositivo a otro, más allá de si la app se publicó a través de APK o AAB. En particular, cuando se optimizaron los APK para un dispositivo (por ejemplo, para una arquitectura de chip específica), es posible que la transferencia directa de esos APK a otro dispositivo tenga problemas si el dispositivo de destino no coincide con las propiedades del dispositivo original. En estos casos, se debe instalar un APK o conjunto de APKs adecuados para el dispositivo de destino.
¿Puedo publicar en varias tienda de aplicaciones?
Sí, puedes publicar apps en varias tiendas de aplicaciones, sin importar si usas AABs. Puedes publicar AAB en Google Play y otras tiendas de apps compatibles con AAB, y publicar APK en otras tiendas o sitios web que no admitan AAB.
¿Se aplica el requisito de AAB a las apps privadas que se publican en Google Play administrado?
No, las apps privadas publicadas en Google Play administrado pueden publicarse con APK o AAB. Cuando creas una nueva app privada, puedes elegir Cambiar la clave de firma de la app y, luego, inhabilitar la firma de apps de Play si deseas publicar un APK privado autofirmado.
Acerca de la firma de apps de Play
¿Qué es la firma de apps de Play?
Todos los APK de Android deben estar firmados de manera criptográfica con una clave de firma de la app para poder instalarse. La plataforma de Android usa la clave para garantizar que las actualizaciones de la app coincidan con la app instalada en un dispositivo de modo que, después de una instalación inicial, cada actualización provenga del mismo propietario de la clave. De este modo, se reduce el riesgo de actualizaciones de apps maliciosas. Lanzada en 2017, la firma de apps de Play es el servicio de administración de claves de Google Play que protege y administra las claves de firma de la app de los desarrolladores de Play para sus apps distribuidas en Play. Además, la firma de apps de Play realiza la operación de firma en los APKs que genera Play desde los AABs subidos. La firma de apps de Play es obligatoria para las apps nuevas para que puedan usar AABs.
¿Por qué Google lanzó la firma de apps de Play?
Durante años, las claves de firma de la app representaron un desafío para los desarrolladores de Play. Perder la clave significaría no poder publicar actualizaciones de la app para los usuarios, y una clave que se vea comprometida pone a estos en riesgo de actualizaciones maliciosas. En la distribución de software, es común que los canales de distribución almacenen y administren las claves del software que distribuyen porque esto mitiga los riesgos. La firma de apps de Play se lanzó en 2017 para eliminar el riesgo de perder claves de distribución de Play, proteger a los usuarios de Play luego de un compromiso de clave y brindarles a los desarrolladores el beneficio de la inversión continua en seguridad de Google.
¿Cómo garantiza Google la seguridad de la firma de apps de Play?
Google protege las claves de los desarrolladores en la misma infraestructura segura y líder de la industria que protege sus propias claves. Las claves se almacenan encriptadas en servidores de administración de claves dedicados y bloqueados con LCA estrictas y registros de auditoría de seguridad que abarcan todas las operaciones. Las operaciones y las prácticas recomendadas sobre seguridad en la nube de Google se detallan en línea.
¿Puedo elegir la clave de firma de la app que usa Play para mi app?
Sí, cuando creas una app nueva, puedes elegir que Google genere y almacene una clave de firma de la app en tu nombre, o bien seleccionar tu propia clave y cargar una copia de ella.
Quiero usar la misma clave de firma de la app para Play y otras tiendas de aplicaciones. ¿Sigue siendo esto posible?
Si decidiste usar la misma clave de firma en varias tiendas de aplicaciones luego de considerar cómo funcionan las actualizaciones de la app, entonces aún puedes hacerlo. Recuerda que esto permitirá que cada tienda de apps realice actualizaciones entre tiendas para tu app. Tienes dos opciones:
- Puedes generar una clave de forma local y subir una copia a Play. De esa manera, puedes usar la misma clave que utiliza Google Play cuando compilas la app para otras tiendas de aplicaciones.
- Puedes usar una clave generada por Google para la firma de apps de Play para luego descargar los APKs de distribución de Play Console que estén firmados con la clave generada por Google y usarlos para la distribución en otras tiendas de aplicaciones o sitios web.
¿Puedo usar la firma de apps de Play para una app creada antes de agosto de 2021 sin proporcionar una copia de mi clave de firma de la app?
Sí, la firma de apps de Play admite la opción de "actualización de claves" para las apps creadas antes de agosto de 2021. De esta manera, la app puede comenzar a usar la firma de apps de Play con una clave de firma nueva. Sin embargo, para usar esta opción, después de realizar la actualización, deberás subir dos elementos en cada versión: un paquete de aplicación y un APK heredado firmado con tu clave de firma de la app anterior. Play usará tus AAB para generar los APK firmados con la clave actualizada para las nuevas instalaciones y sus actualizaciones, al mismo tiempo que Play utilizará tus APK heredados para las actualizaciones de la app de los usuarios que ya la tienen instalada. Con el tiempo, las instalaciones heredadas se migrarán a la clave actualizada (p. ej., cuando los usuarios adquieran un nuevo dispositivo móvil).
¿Hay alguna forma de usar la misma clave de firma para apps creadas antes de agosto de 2021 y apps creadas después de esa fecha?
Por lo general, no se recomienda el uso de la misma clave de firma de la app para varias apps; es más seguro usar una clave única para cada app. Sin embargo, es posible hacerlo. Puedes subir una copia de la clave de firma de la app existente cuando configures la firma de apps de Play. O bien, si no quieres compartir la clave de firma de la app existente, puedes usar la opción de "actualización de claves", disponible próximamente, para que tu app anterior a agosto de 2021 comience a usar la firma de apps de Play. De esta manera, la app anterior a agosto de 2021 y la posterior a agosto de 2021 podrán usar la misma clave nueva.
¿Puedo cambiar la clave de firma de la app que usa la firma de apps de Play?
Sí, las apps pueden cambiar su clave a través de la solicitud de una actualización de clave en Play Console.
¿Cómo puedo comprobar que Google Play no realizó cambios inesperados en mi código?
En cualquier momento, puedes descargar e inspeccionar artefactos de Google Play y del explorador de paquete de aplicación en Play Console. Además, la API de Play Developer pronto ofrecerá la posibilidad de verificar los APK antes de confirmarlos en un segmento. También puedes usar una función opcional llamada transparencia de código para paquetes de aplicaciones. Con la transparencia de código, tú y tus usuarios finales pueden pedirle a una tienda de aplicaciones como Google Play que rinda cuentas por el código que publica.
¿Cómo funciona la transparencia de código en los paquetes de aplicaciones?
La transparencia de código es una función opcional que permite que una tienda de aplicaciones que distribuye tu app rinda cuentas por el código que publica. Para usar la transparencia de código, durante el tiempo de compilación, debes generar un archivo de transparencia de código en tu app que represente el código (específicamente, es un archivo que contiene hashes de tu código de la app). Lo firmas con tu propia clave de transparencia de código privada que solo tú tienes. Nunca es necesario proporcionar la clave de transparencia de código a Google. Luego, en un dispositivo, puedes inspeccionar un APK instalado y verificar que el archivo de transparencia de códigos que firmaste todavía coincida con el código del APK. Esto te da la garantía de que, incluso si se volvió a firmar el APK durante la distribución, no se modificó el código verificado por la transparencia de código. Si hay una discrepancia, significa que el código se modificó durante la distribución. La transparencia de código no reemplaza las firmas del APK y no forma parte de la plataforma de Android.
Cómo publicar apps y juegos grandes en Google Play
¿Cuáles son los límites de tamaño de las apps de Google Play cuando se usan los AAB?
El tamaño máximo de descarga comprimida para un módulo base generado a partir de un AAB es de 200 MB. Es decir, Google Play primero generará el módulo base y, luego, los módulos de funciones o paquetes de recursos adicionales de tu AAB. A continuación, Google Play comprueba que el tamaño total máximo de descarga comprimida acumulativa que recibe cualquier dispositivo individual no supere los 4 GB.
¿Google Play admite archivos de expansión (OBB) para AAB?
No, Google Play no admite archivos de expansión para AAB. Los archivos de expansión (OBB) son una solución heredada específica de Google Play para publicar apps y juegos grandes con APKs. Existen alternativas de Google y de terceros para AAB de más de 200 MB.
¿Cómo publico una app o un juego de más de 200 MB en Google Play?
Las apps y los juegos grandes que usan AAB pueden usar los servicios de publicación de Play, como Play Asset Delivery o Play Feature Delivery, para exceder el límite de tamaño de 200 MB, o bien usar redes de distribución de contenidos de terceros.
¿Qué beneficios ofrece Play Asset Delivery en comparación con los archivos de expansión (OBB)?
En Google Play, los APK requerían archivos de expansión (OBB) separados para proporcionar recursos adicionales a los usuarios. Sin embargo, como los OBB no estaban firmados y se almacenan en el almacenamiento externo de la app, no son muy seguros. Con Play Asset Delivery (PAD), los juegos de más de 200 MB pueden reemplazar los OBB si publicas todo el juego como un solo paquete de aplicación en Play Store. Además de ofrecer un proceso de publicación más fluido y modos de publicación flexibles, PAD significa que las actualizaciones requieren menos almacenamiento en el dispositivo. Como resultado, puede generar tasas de instalación más altas. Por último, dado que ASTC ahora es compatible con alrededor del 80% de los dispositivos, la función de orientación de formato de compresión de texturas de PAD te permite publicar ASTC en dispositivos compatibles. Puedes orientarte a la más amplia variedad de dispositivos y, al mismo tiempo, aprovechar de manera eficiente el almacenamiento y el hardware disponibles.
Funciones de publicación de Google Play desbloqueadas por los AAB
¿Cuáles son ejemplos de funciones nuevas que Play ofrece a los desarrolladores que usan AAB?
Las tiendas de aplicaciones, como Google Play, procesan los AAB para convertirlos en APK instalables. Ser responsable de los APK permite ofrecer funciones y servicios nuevos que brindan beneficios a los desarrolladores y los usuarios. Play ya ofrece estos servicios que los desarrolladores usan y valoran ampliamente. Dos ejemplos son Play Feature Delivery y Play Asset Delivery.
¿Qué es Play Feature Delivery?
Una de las funciones de los paquetes de aplicaciones es que permiten separar una app en varios módulos, denominados "módulos de funciones". Estos módulos se pueden publicar de forma dinámica para usuarios y dispositivos en diferentes momentos (a diferencia del pasado, cuando todo tenía que publicarse como un archivo en el momento de la instalación). Play Feature Delivery te permite personalizar qué módulos de funciones se publican en cada dispositivo y cuándo, con los modos de publicación de hora de instalación, condicionales y a pedido. Esto te permite reducir el tamaño de la app, lo que genera más instalaciones, y personalizar la experiencia de la app. Por ejemplo, podrías ofrecer una función poco usada, como asistencia al cliente a pedido a los usuarios que la necesiten en lugar de en el momento de la instalación, lo que reduce el tamaño de la instalación inicial para todos los usuarios. También puedes brindar tu experiencia completa de la app en dispositivos de alta gama y, a su vez, ofrecer una experiencia más sencilla con funciones opcionales a pedido en dispositivos básicos que tengan restricciones de datos y almacenamiento.
¿Qué es Play Asset Delivery?
Play Asset Delivery permite que los desarrolladores de juegos mejoren la experiencia del usuario y reduzcan el tiempo de espera mediante la publicación dinámica de elementos grandes en momentos óptimos. Los juegos que usan Play Asset Delivery también pueden usar la orientación de formato de compresión de texturas, por lo que los usuarios solo obtienen los elementos adecuados para sus dispositivos, sin desperdiciar espacio ni ancho de banda.
¿Estas funciones de publicación de Play están disponibles en otras tiendas de aplicaciones?
No, Play Feature Delivery y Play Asset Delivery incluyen apps y juegos que interactúan directamente con Google Play Store. Estos servicios opcionales son ejemplos de cómo Play se diferencia como tienda de aplicaciones y aporta valor y utilidad adicionales a los desarrolladores y usuarios de Play. Otras tiendas de aplicaciones que usan paquetes de aplicaciones y APK ofrecen sus propios servicios a los desarrolladores.