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 APK a los evaluadores mediante el complemento Gradle de distribución de aplicaciones.

Antes de que empieces

Si aún no lo ha hecho, agregue Firebase a su proyecto de Android .

Si no está utilizando ningún otro producto de Firebase, solo tiene que crear un proyecto y registrar su aplicación. Sin embargo, si decide usar productos adicionales en el futuro, asegúrese de completar todos los pasos en la página vinculada anteriormente.

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.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    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.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  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="APK"
              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 = "APK"
              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 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 assembleRelease 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 assembleRelease 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="APK"
      
    • 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.

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