Puede integrar la distribución de aplicaciones en su proceso de compilación de Android mediante el complemento Gradle de distribución de aplicaciones. El complemento le permite especificar sus probadores y notas de la versión en el archivo build.gradle
de su aplicación, lo que le permite configurar distribuciones para diferentes tipos de compilación y variantes de su aplicación.
Esta guía describe cómo distribuir Android App Bundles (AAB) a los evaluadores mediante el complemento Gradle de distribución de aplicaciones.
App Distribution se integra con el servicio interno de uso compartido de aplicaciones de Google Play para procesar los AAB que carga y sirve APK que están optimizados para las configuraciones de dispositivos de sus evaluadores. La distribución de AAB le permite hacer lo siguiente:
Ejecute APK optimizados (servidos por Google Play) que están optimizados para los dispositivos de sus evaluadores.
Descubra y depure problemas específicos del dispositivo.
Pruebe funciones de paquetes de aplicaciones como Play Feature Delivery y Play Asset Delivery .
Reduzca el tamaño de las descargas para sus evaluadores.
Permisos requeridos
Para cargar AAB en App Distribution, debe vincular su aplicación de Firebase a una aplicación en Google Play . Debe tener el nivel de acceso requerido para realizar estas acciones.
Si no tiene el acceso necesario a Firebase, puede pedirle al propietario de un proyecto de Firebase que le asigne la función correspondiente a través de la configuración de IAM de la consola de Firebase . Si tiene preguntas sobre el acceso a su proyecto de Firebase, incluida la búsqueda o la asignación de un propietario, consulte las preguntas frecuentes sobre "Permisos y acceso a proyectos de Firebase" .
La siguiente tabla se aplica a la vinculación de una aplicación de Firebase a una aplicación en Google Play, así como a la carga de AAB.
Acción en la consola Firebase | Permiso de gestión de identidades y accesos requerido | Funciones de IAM que incluyen los permisos necesarios de forma predeterminada | Rol(es) adicional(es) requerido(s) |
---|---|---|---|
Vincular una aplicación de Firebase a una aplicación 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 la distribución de aplicaciones | firebaseappdistro.releases.update | Uno de los siguientes roles: | –– |
Antes de que empieces
Si aún no lo ha hecho, agregue Firebase a su proyecto de Android . Al final de este flujo de trabajo, tendrá una aplicación de Android de Firebase en su proyecto de Firebase.
Si no está utilizando ningún otro producto de Firebase, solo necesita crear un proyecto y registrar su aplicación. Si decide usar productos adicionales, asegúrese de completar todos los pasos en Agregar Firebase a su proyecto de Android .
Para crear un enlace de Firebase a Google Play y cargar AAB, asegúrese de que su aplicación cumpla con los siguientes requisitos:
La aplicación en Google Play y la aplicación Firebase para Android están registradas con el mismo nombre de paquete.
La aplicación en Google Play se configura en el tablero de la aplicación y se distribuye a una de las pistas de Google Play (pruebas internas, pruebas cerradas, pruebas abiertas o producción).
La revisión de la aplicación en Google Play está completa y la aplicación está publicada. Su aplicación se publica si la columna Estado de la aplicación muestra uno de los siguientes estados: Prueba interna (no prueba interna preliminar), Prueba cerrada, Prueba abierta o Producción.
Vincula tu aplicación Firebase para Android a tu cuenta de desarrollador de Google Play:
En Firebase console, vaya a su
del proyecto , luego seleccione la pestaña Integraciones .En la tarjeta de Google Play , haga clic en Enlace .
Si ya tiene enlaces a Google Play, haga clic en Administrar en su lugar.Siga las instrucciones en pantalla para habilitar la integración de distribución de aplicaciones y seleccione qué aplicaciones Android de Firebase vincular a Google Play.
Obtén más información sobre la vinculación a Google Play .
Paso 1. Configura tu proyecto de Android
En su archivo Gradle de nivel raíz (nivel de proyecto) (
o<project>/build.gradle
), agregue el complemento App Distribution Gradle como una dependencia de buildscript:<project>/build.gradle.kts maravilloso
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath 'com.android.tools.build:gradle:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.2.0' } }
kotlin
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath("com.android.tools.build:gradle:7.2.0") // Make sure that you have the Google services Gradle plugin dependency classpath("com.google.gms:google-services:4.3.15") // Add the dependency for the App Distribution Gradle plugin classpath("com.google.firebase:firebase-appdistribution-gradle:3.2.0") } }
En el archivo Gradle de tu módulo (a nivel de aplicación) (generalmente
o<project>/<app-module>/build.gradle
), agrega el complemento Gradle de distribución de aplicaciones:<project>/<app-module>/build.gradle.kts maravilloso
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' }
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") }
Si está detrás de un proxy corporativo o un firewall, agregue la siguiente propiedad del sistema Java que permite que App Distribution cargue sus distribuciones en Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Paso 2. Autenticarse con Firebase
Antes de poder usar el complemento de Gradle, primero debe autenticarse con su proyecto de Firebase de una de las siguientes maneras. De forma predeterminada, el complemento de Gradle busca las credenciales de la CLI de Firebase si no se utiliza ningún otro método de autenticación.
La autenticación con una cuenta de servicio le permite usar el complemento de manera flexible con su sistema de integración continua (CI). Hay dos formas de proporcionar las credenciales de la cuenta de servicio:
- Pase el archivo de clave de su cuenta de servicio a
build.gradle
. Puede encontrar este método conveniente si ya tiene su archivo de clave de cuenta de servicio en su entorno de compilación. - Configure la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
para que apunte al archivo de claves de su cuenta de servicio. Es posible que prefiera este método si ya tiene Credenciales predeterminadas de la aplicación (ADC) configuradas para otro servicio de Google (p. ej., Google Cloud).
Para autenticarse usando las credenciales de la cuenta de servicio:
- En Google Cloud Console, seleccione su proyecto y cree una nueva cuenta de servicio.
- Agregue la función de administrador de distribución de aplicaciones de Firebase .
- Cree una clave json privada y mueva la clave a una ubicación accesible para su entorno de compilación. Asegúrese de mantener este archivo en un lugar seguro , ya que otorga acceso de administrador a la distribución de aplicaciones en su proyecto de Firebase.
- Omita este paso si creó su aplicación después del 20 de septiembre de 2019: en la consola de API de Google, habilite la API de distribución de aplicaciones de Firebase. Cuando se le solicite, seleccione el proyecto con el mismo nombre que su proyecto de Firebase.
Proporcione o localice las credenciales de su cuenta de servicio:
- Para pasar a Gradle la clave de su cuenta de servicio, en su archivo
build.gradle
, establezca la propiedadserviceCredentialsFile
en el archivo JSON de clave privada. Para ubicar sus credenciales con ADC, establezca la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
en la ruta del archivo JSON de clave privada. Por ejemplo:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Para obtener más información sobre la autenticación con ADC, lea Proporcionar credenciales a su aplicación.
- Para pasar a Gradle la clave de su cuenta de servicio, en su archivo
Consulte Iniciar sesión con Firebase CLI para obtener instrucciones sobre cómo autenticar su proyecto.
Paso 3. Configure sus propiedades de distribución
En el archivo Gradle de su módulo (nivel de aplicación) (generalmente
o
), configure la distribución de aplicaciones agregando al menos una sección firebaseAppDistribution
.
Por ejemplo, para distribuir la compilación de la release
a los evaluadores, siga estas instrucciones:
maravilloso
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { release { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Puede configurar la distribución de aplicaciones para tipos de compilación y tipos de productos .
Por ejemplo, para distribuir compilaciones de debug
y release
en versiones de producto "demo" y "completas", siga estas instrucciones:
maravilloso
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" } } } // ... }
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" } } } // ... }
Utilice los siguientes parámetros para configurar la distribución:
Parámetros de compilación de distribución de aplicaciones | |
---|---|
appId | El ID de aplicación de Firebase de tu aplicación. Obligatorio solo si no tiene instalado el complemento Gradle de Google Services. Puede encontrar el ID de la aplicación en el archivo appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | La ruta al archivo JSON de clave privada de su cuenta de servicio. Obligatorio solo si utiliza la autenticación de cuenta de servicio. |
artifactType | Especifica el tipo de archivo de su aplicación. Se puede configurar en |
artifactPath | Ruta absoluta al archivo APK o AAB que desea cargar. |
releaseNotes o releaseNotesFile | Notas de la versión para esta compilación. Puede 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 evaluadores a los que desea distribuir compilaciones. Puede especificar los evaluadores como una lista de direcciones de correo electrónico separadas por comas: testers="ali@example.com, bri@example.com, cal@example.com" O bien, puede especificar la ruta a un archivo que contiene una lista de direcciones de correo electrónico separadas por comas: testersFile="/path/to/testers.txt" |
groups o groupsFile | Los grupos de probadores a los que desea distribuir compilaciones (consulte Administrar probadores ). Los grupos se especifican usando Puede especificar los grupos como una lista separada por comas de alias de grupo: groups="qa-team, android-testers" O bien, puede especificar la ruta a un archivo que contiene una lista de alias de grupo separados por comas: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Imprime el seguimiento de la pila para las excepciones de usuario. Esto es útil al depurar problemas. |
Paso 4. Distribuya su aplicación a los evaluadores
Finalmente, para empaquetar su aplicación de prueba e invitar a los evaluadores, cree los objetivos
BUILD-VARIANT
yappDistributionUpload BUILD-VARIANT
con el contenedor de Gradle de su proyecto, donde BUILD-VARIANT es el tipo de producto opcional y el tipo de compilación que configuró en el paso anterior. Para obtener más información sobre tipos de productos, consulte Configurar variantes de compilación .Por ejemplo, para distribuir su aplicación usando la variante de compilación
release
, ejecute el siguiente comando:./gradlew bundleRelease appDistributionUploadRelease
O bien, si se autenticó con su cuenta de Google y no proporcionó credenciales en su archivo de compilación de Gradle, incluya 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 tu archivo
build.gradle
pasando argumentos de línea de comando en forma de--<property-name>=<property-value>
. Por ejemplo:Para cargar una compilación de depuración en App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Para invitar a más testers o eliminar testers 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 haya agregado un probador a su proyecto de Firebase, puede agregarlo a versiones individuales. Los evaluadores que se eliminen ya no tendrán acceso a los lanzamientos de su proyecto, pero aún pueden conservar el acceso a sus lanzamientos durante un período de tiempo.
También puede especificar testers usando
--file="/path/to/testers.txt"
en lugar de--emails
.Las tareas
appDistributionAddTesters
yappDistributionRemoveTesters
también aceptan los siguientes argumentos:projectNumber
: su número de proyecto de Firebase.serviceCredentialsFile
: la ruta a su archivo de credenciales de servicio de Google. Este es el mismo argumento utilizado por la acción de carga.
El complemento de Gradle genera los siguientes enlaces después de la carga de la versión. Estos enlaces lo ayudan a administrar binarios y garantizar que los probadores y otros desarrolladores tengan la versión correcta:
-
firebase_console_uri
: un vínculo a la consola de Firebase que muestra una única versión. Puede compartir este enlace con otros desarrolladores en su organización. -
testing_uri
: un enlace a la versión en la experiencia del evaluador (aplicación nativa de Android) que permite a los evaluadores ver las notas de la versión e instalar la aplicación en su dispositivo. El probador necesita acceso a la versión para usar el enlace. -
binary_download_uri
: un enlace firmado que descarga e instala directamente el binario de la aplicación (archivo APK o AAB). El enlace caduca después de una hora.
Una vez que distribuya su compilación, estará disponible en el panel de distribución de aplicaciones de Firebase console durante 150 días (cinco meses). Cuando faltan 30 días para que caduque la compilación, aparece un aviso de caducidad tanto en la consola como en la lista de compilaciones del probador en su dispositivo de prueba.
Los probadores que no han sido invitados a probar la aplicación reciben invitaciones por correo electrónico para comenzar, y los probadores existentes reciben notificaciones por correo electrónico de que una nueva compilación está lista para probar (lea la guía de configuración del probador para obtener instrucciones sobre cómo instalar la aplicación de prueba). Puede monitorear el estado de cada evaluador, ya sea que aceptaron la invitación y si descargaron la aplicación, en la consola de Firebase.
Los evaluadores tienen 30 días para aceptar una invitación para probar la aplicación antes de que caduque. Cuando faltan cinco días para que caduque una invitación, aparece un aviso de caducidad en Firebase console junto al tester en un lanzamiento. Se puede renovar una invitación reenviándola usando el menú desplegable en la fila del probador.
Próximos pasos
Visite el codelab de Android App Bundle para obtener información sobre cómo distribuir los lanzamientos de paquetes de aplicaciones paso a paso.
Conozca las prácticas recomendadas para distribuir aplicaciones de Android a evaluadores de control de calidad mediante CI/CD .