Puedes integrar App Distribution en tu proceso de compilación de Android con el complemento de App Distribution para Gradle. El complemento te permite especificar los verificadores y las notas de la versión en el archivo Gradle de tu app, lo que te permite configurar distribuciones para diferentes tipos y variantes de compilación de tu app.
En esta guía, se describe cómo distribuir Android App Bundles (AAB) a los verificadores mediante el complemento de App Distribution para Gradle.
App Distribution se integra en el servicio de uso compartido interno de apps de Google Play a fin de procesar los AAB que subes y entregar APK optimizados para la configuración de los dispositivos de tus verificadores. La distribución de AAB te permite hacer lo siguiente:
Ejecutar APK optimizados (entregados por Google Play) para los dispositivos de tus verificadores
Descubrir y depurar los problemas específicos del dispositivo
Probar funciones del paquete de aplicación, como Play Feature Delivery y Play Asset Delivery
Reducir el tamaño de las descargas para los verificadores
Permisos necesarios
Para subir AAB a App Distribution, debes vincular tu app de Firebase con una app en Google Play. Debes tener el nivel de acceso necesario para realizar estas acciones.
Si no tienes el acceso necesario a Firebase, puedes pedirle al propietario del proyecto de Firebase que te asigne el rol correspondiente mediante la configuración de IAM de Firebase console. Si tienes preguntas sobre el acceso a tu proyecto de Firebase, incluida la búsqueda o asignación de propietarios, revisa las Preguntas frecuentes sobre “Permisos y acceso a los proyectos de Firebase”.
La siguiente tabla se aplica a la vinculación de una app de Firebase con una app en Google Play y a la carga de AAB.
Acción en Firebase console | Permiso de IAM obligatorio | Roles de IAM que incluyen permisos obligatorios de forma predeterminada | Roles adicionales requeridos |
---|---|---|---|
Vincular una app de Firebase a una app en Google Play | firebase.playLinks.update
|
Uno de los siguientes roles: | Acceso a una cuenta de desarrollador de Google Play como Administrador |
Subir AAB a App Distribution | firebaseappdistro.releases.update
|
Uno de los siguientes roles: | –– |
Antes de comenzar
Si aún no lo hiciste, agrega Firebase a tu proyecto de Android. Al final de este flujo de trabajo, tendrás una app de Firebase para Android en tu proyecto de Firebase.
Si no utilizas ningún otro producto de Firebase, solo debes crear un proyecto y registrar tu app. Si decides usar productos adicionales, asegúrate de completar todos los pasos que se indican en Agrega Firebase al proyecto de Android.
Para crear un vínculo de Firebase a Google Play y subir AAB, asegúrate de que la app cumpla con los siguientes requisitos:
La app en Google Play y la app de Firebase para Android deben estar registradas con el mismo nombre de paquete.
La app en Google Play debe estar configurada en el panel de apps y se distribuye en uno de los segmentos de Google Play (Pruebas internas, Pruebas cerradas, Pruebas abiertas o Producción).
La revisión de la app en Google Play debe estar completa y la app debe estar publicada. La app está publicada si en la columna Estado de la app se muestra uno de los siguientes estados: Pruebas internas (no pruebas internas en borrador), Pruebas cerradas, Pruebas abiertas o Producción.
Vincula tu app de Firebase para Android a tu cuenta de desarrollador de Google Play:
En Firebase console, ve a la
y, luego, selecciona la pestaña Integraciones. configuración del proyecto En la tarjeta de Google Play, haz clic en Vincular.
Si ya tienes vínculos a Google Play, haz clic en Administrar en su lugar.Sigue las instrucciones en pantalla a fin de habilitar la integración de App Distribution y seleccionar las apps de Firebase para Android que quieres vincular a Google Play.
Obtén más información para realizar vinculaciones a Google Play.
Paso 1: Configura tu proyecto de Android
Agrega el complemento de App Distribution para Gradle como dependencia en el archivo de Gradle (
<project>/build.gradle.kts
o<project>/build.gradle
) de nivel de raíz (a nivel del proyecto):Kotlin
plugins { // ... id("com.android.application") version "7.2.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.3.15" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.2.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.3.15' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.0.0' apply false }
Agrega el complemento de App Distribution para Gradle en el archivo de Gradle (generalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de la app):Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
Si estás detrás de un proxy o firewall empresarial, agrega la siguiente propiedad del sistema de Java que permite que App Distribution suba tus distribuciones a Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Paso 2: Autentica con Firebase
Antes de usar el complemento de Gradle, debes realizar la autenticación con tu proyecto de Firebase de una de las siguientes maneras. Según la configuración predeterminada, el complemento de Gradle busca credenciales de Firebase CLI si no se utiliza ningún otro método de autenticación.
Paso 3: Configura las propiedades de distribución
Agrega al menos una sección firebaseAppDistribution
para configurar App Distribution en el archivo de Gradle (generalmente <project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de la app).
Por ejemplo, para distribuir la compilación release
a los verificadores, sigue estas
instrucciones:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Puedes configurar App Distribution para tipos de compilación y variantes de producto.
Por ejemplo, para distribuir compilaciones de debug
y release
en variantes de producto “demo” y “full”,
sigue estas instrucciones:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
Usa los siguientes parámetros para configurar la distribución:
Parámetros de compilación de App Distribution | |
---|---|
appId
|
El ID de app de Firebase de la aplicación. Solo es obligatorio si no tienes instalado el
complemento de Gradle de los Servicios de Google. Puedes encontrar el ID de la app
en el archivo appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
La ruta de acceso al archivo JSON de la clave privada de tu cuenta de servicio. Solo es obligatoria si usas la autenticación de cuentas de servicio. |
artifactType
|
Especifica el tipo de archivo de tu app. Se puede configurar en
|
artifactPath
|
Es una ruta absoluta al archivo APK o AAB que quieres subir. |
releaseNotes o releaseNotesFile |
Las notas de la versión de esta compilación. Puedes especificar las notas de la versión directamente o la ruta a un archivo de texto sin formato. |
testers o testersFile |
Las direcciones de correo electrónico de los verificadores a los que quieres distribuir las compilaciones. Puedes especificar los verificadores como una lista separada por comas de direcciones de correo electrónico, como sigue: testers="ali@example.com, bri@example.com, cal@example.com" O bien, puedes especificar la ruta de acceso a un archivo que contenga una lista separada por comas de direcciones de correo electrónico. testersFile="/path/to/testers.txt" |
groups o groupsFile |
Los grupos de verificadores a los que quieres distribuir las compilaciones (consulta Administra verificadores).
Los grupos se especifican con Puedes especificar los grupos como una lista separada por comas de alias de grupos: groups="qa-team, android-testers" O bien, puedes especificar la ruta de acceso a un archivo que contenga una lista separada por comas de alias de grupos. groupsFile="/path/to/tester-groups.txt" |
stacktrace
|
Imprime el seguimiento de pila para las excepciones de usuario. Esto es útil para depurar problemas. |
Paso 4: Distribuye la app a los verificadores
Por último, para empaquetar la app de prueba, así como invitar a los verificadores, compila los destinos
BUILD-VARIANT
yappDistributionUploadBUILD-VARIANT
con el wrapper de Gradle de tu proyecto, en el que BUILD-VARIANT es la variante de producto opcional y el tipo de compilación que configuraste en el paso anterior. Para obtener más información sobre las variantes de producto, consulta Cómo configurar variantes de compilación.Por ejemplo, para distribuir tu app con la variante de compilación
release
, ejecuta el siguiente comando:./gradlew bundleRelease appDistributionUploadRelease
O, si realizaste la autenticación con tu Cuenta de Google y no proporcionaste credenciales en el archivo de compilación Gradle, incluye la variable
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
También puedes anular los valores establecidos en el archivo
build.gradle
si pasas los argumentos de la línea de comandos con el formato--<property-name>=<property-value>
. Por ejemplo:Para subir una compilación de depuración a App Distribution, haz lo siguiente:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Sigue estos pasos para invitar a verificadores adicionales o quitar verificadores existentes de tu proyecto de Firebase:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
Una vez que se agrega un verificador a tu proyecto de Firebase, puedes agregarlo a versiones individuales. Los verificadores que se quiten ya no tendrán acceso a las versiones del proyecto, pero podrán conservar el acceso a las versiones durante un período determinado.
También puedes especificar verificadores con
--file="/path/to/testers.txt"
, en lugar de--emails
.Las tareas
appDistributionAddTesters
yappDistributionRemoveTesters
también aceptan los siguientes argumentos:projectNumber
: Es el número de tu proyecto de Firebase.serviceCredentialsFile
: Es la ruta de acceso al archivo de credenciales del servicio de Google. Este es el mismo argumento que usa la acción de carga.
El complemento de Gradle genera los siguientes vínculos después de la carga de la versión. Estos vínculos te ayudan a administrar objetos binarios y garantizar que los verificadores y otros desarrolladores tengan la versión correcta:
firebase_console_uri
: Es un vínculo a Firebase console que muestra una sola versión. Puedes compartir este vínculo con otros desarrolladores de tu organización.testing_uri
: Es un vínculo a la versión en la experiencia de verificador (aplicación nativa para Android) que permite que los verificadores vean las notas de la versión y, luego, instalen la app en su dispositivo. El verificador necesita acceso a la versión para poder usar el vínculo.binary_download_uri
: Es un vínculo firmado que descarga e instala directamente el objeto binario de la app (archivo APK o AAB). El vínculo vence después de una hora.
Una vez que distribuyas la compilación, estará disponible en el panel de App Distribution de Firebase console durante 150 días (cinco meses). Cuando falten 30 días para el vencimiento de la compilación, se mostrará un aviso de vencimiento en la consola y en la lista de compilaciones de tu verificador, en el dispositivo de prueba.
Los verificadores que no recibieron invitaciones para probar la app las recibirán por correo electrónico para comenzar, y los verificadores existentes recibirán notificaciones por correo electrónico en las que se indicará que hay una nueva compilación lista para probar (consulta la guía de preparación para verificadores si necesitas instrucciones para instalar la app de prueba). En Firebase console, puedes supervisar el estado de cada verificador (si aceptó la invitación y si descargó la app).
Los verificadores tendrán 30 días para aceptar una invitación a fin de probar la app antes de que venza. Cuando falten 5 días para que venza la invitación, aparecerá un aviso en Firebase console junto al verificador en una versión. Si quieres renovar una invitación, puedes usar el menú desplegable de la fila del verificador para reenviarla.
Próximos pasos
Implementa los comentarios directos desde la app para facilitar que los verificadores envíen comentarios sobre tu app (incluidas capturas de pantalla).
Descubre cómo mostrar alertas en la app a los verificadores cuando haya nuevas compilaciones de tu app disponibles para instalar.
Visita el codelab de Android App Bundle si necesitas información para distribuir las versiones de los paquetes de aplicaciones paso a paso.
Conoce las prácticas recomendadas a fin de distribuir apps para Android a verificadores de QA con CI/CD.