Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Distribuir aplicaciones de Android a evaluadores usando Gradle

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

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

  1. 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 .

  2. 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.

  3. Vincula tu aplicación Firebase para Android a tu cuenta de desarrollador de Google Play:

    1. En Firebase console, vaya a su del proyecto , luego seleccione la pestaña Integraciones .

    2. En la tarjeta de Google Play , haga clic en Enlace .
      Si ya tiene enlaces a Google Play, haga clic en Administrar en su lugar.

    3. 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

  1. En su archivo Gradle de nivel raíz (nivel de proyecto) ( <project>/build.gradle o <project>/build.gradle.kts ), agregue el complemento App Distribution Gradle como una dependencia de buildscript:

    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")
      }
    }
    
  2. En el archivo Gradle de tu módulo (a nivel de aplicación) (generalmente <project>/<app-module>/build.gradle o <project>/<app-module>/build.gradle.kts ), agrega el complemento Gradle de distribución de aplicaciones:

    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")
    }
    
  3. 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.

Paso 3. Configure sus propiedades de distribución

En el archivo Gradle de su módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle o <project>/<app-module>/build.gradle.kts ), 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 google-services.json o en la consola de Firebase en la página Configuración general . El valor en su archivo build.gradle anula el valor de salida del complemento google-services .

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 "AAB" o "APK" .

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 alias de grupo , que puede encontrar en la pestaña Probadores en la consola de distribución de aplicaciones de Firebase.

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

  1. Finalmente, para empaquetar su aplicación de prueba e invitar a los evaluadores, cree los objetivos BUILD-VARIANT y appDistributionUpload 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
    
  2. 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 y appDistributionRemoveTesters 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