Distribuer des applications Android aux testeurs à l'aide de Gradle

Vous pouvez intégrer App Distribution dans votre processus de construction Android à l'aide du plug-in App Distribution Gradle. Le plugin vous permet de spécifier vos testeurs et notes de version dans le fichier Gradle de votre application, vous permettant de configurer des distributions pour différents types de build et variantes de votre application.

Ce guide décrit comment distribuer des bundles d'applications Android (AAB) aux testeurs à l'aide du plug-in App Distribution Gradle.

La distribution d'applications s'intègre au service de partage d'applications interne de Google Play pour traiter les AAB que vous téléchargez et proposer des APK optimisés pour les configurations d'appareils de vos testeurs. La distribution des AAB vous permet d'effectuer les opérations suivantes :

  • Exécutez des APK optimisés (servis par Google Play) qui sont optimisés pour les appareils de vos testeurs.

  • Découvrez et déboguez les problèmes spécifiques à l'appareil.

  • Testez les fonctionnalités de l'ensemble d'applications telles que Play Feature Delivery et Play Asset Delivery .

  • Réduisez la taille des téléchargements pour vos testeurs.

Autorisations requises

Pour importer des AAB dans App Distribution, vous devez associer votre application Firebase à une application dans Google Play . Vous devez disposer du niveau d'accès requis pour effectuer ces actions.

Si vous ne disposez pas de l'accès Firebase nécessaire, vous pouvez demander à un propriétaire de projet Firebase de vous attribuer le rôle applicable via les paramètres IAM de la console Firebase . Si vous avez des questions sur l'accès à votre projet Firebase, y compris sur la recherche ou l'attribution d'un propriétaire, consultez la FAQ "Autorisations et accès aux projets Firebase" .

Le tableau suivant s'applique à l'association d'une application Firebase à une application dans Google Play, ainsi qu'au téléchargement d'AAB.

Action dans la console Firebase Autorisation IAM requise Rôle(s) IAM qui incluent les autorisations requises par défaut Rôle(s) supplémentaire(s) requis
Associer une application Firebase à une application dans Google Play firebase.playLinks.update L'un des rôles suivants : Accès à un compte de développeur Google Play en tant qu'administrateur
Télécharger les AAB dans la distribution d'applications firebaseappdistro.releases.update L'un des rôles suivants : ––

Avant que tu commences

  1. Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Android . À la fin de ce flux de travail, vous aurez une application Android Firebase dans votre projet Firebase.

    Si vous n'utilisez aucun autre produit Firebase, il vous suffit de créer un projet et d'enregistrer votre application. Si vous décidez d'utiliser des produits supplémentaires, assurez-vous de suivre toutes les étapes de la section Ajouter Firebase à votre projet Android .

  2. Pour créer un lien Firebase vers Google Play et importer des AAB, assurez-vous que votre application répond aux exigences suivantes :

    • L'application dans Google Play et l'application Firebase Android sont toutes deux enregistrées avec le même nom de package.

    • L'application dans Google Play est configurée sur le tableau de bord de l'application et est distribuée à l'une des pistes de Google Play (test interne, test fermé, test ouvert ou production).

    • L'examen de l'application dans Google Play est terminé et l'application est publiée. Votre application est publiée si la colonne Statut de l'application affiche l'un des statuts suivants : test interne (pas de test interne préliminaire), test fermé, test ouvert ou production.

  3. Associez votre application Firebase Android à votre compte de développeur Google Play :

    1. Dans la console Firebase, accédez à vos Paramètres du projet , puis sélectionnez l'onglet Intégrations .

    2. Sur la carte Google Play , cliquez sur Lien .
      Si vous avez déjà des liens vers Google Play, cliquez plutôt sur Gérer .

    3. Suivez les instructions à l'écran pour activer l'intégration de la distribution d'applications et sélectionnez les applications Android Firebase à lier à Google Play.

    En savoir plus sur l'association à Google Play .

Étape 1. Configurez votre projet Android

  1. Dans votre fichier Gradle au niveau racine (au niveau du projet) ( <project>/build.gradle.kts ou <project>/build.gradle ), ajoutez le plug-in App Distribution Gradle en tant que dépendance :

    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
    }
    
  2. Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ), ajoutez le plug-in App Distribution Gradle :

    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'
    }
    
  3. Si vous êtes derrière un proxy ou un pare-feu d'entreprise, ajoutez la propriété système Java suivante qui permet à App Distribution d'importer vos distributions sur Firebase :

    -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
    

Étape 2. Authentifiez-vous avec Firebase

Avant de pouvoir utiliser le plugin Gradle, vous devez d'abord vous authentifier auprès de votre projet Firebase de l'une des manières suivantes. Par défaut, le plug-in Gradle recherche les informations d'identification de la CLI Firebase si aucune autre méthode d'authentification n'est utilisée.

Étape 3. Configurez vos propriétés de distribution

Dans le fichier Gradle de votre module (au niveau de l'application) (généralement <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ), configurez App Distribution en ajoutant au moins une section firebaseAppDistribution .

Par exemple, pour distribuer la version release aux testeurs, suivez ces instructions :

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"
          }
      }
  }

  // ...
}

Vous pouvez configurer App Distribution pour les types de build et les saveurs de produit .

Par exemple, pour distribuer les versions debug et release dans les versions de produit "démo" et "complètes", suivez ces instructions :

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"
          }
      }
  }

  // ...
}

Utilisez les paramètres suivants pour configurer la distribution :

Paramètres de construction de distribution d'applications
appId

ID d'application Firebase de votre application. Requis uniquement si vous n'avez pas installé le plug-in Google Services Gradle. Vous pouvez trouver l'ID d'application dans le fichier google-services.json ou dans la console Firebase sur la page Paramètres généraux . La valeur de votre fichier build.gradle remplace la valeur de sortie du plug-in google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

Chemin d'accès au fichier JSON de la clé privée de votre compte de service. Obligatoire uniquement si vous utilisez l'authentification du compte de service.

artifactType

Spécifie le type de fichier de votre application. Peut être réglé sur "AAB" ou "APK" .

artifactPath

Chemin absolu vers le fichier APK ou AAB que vous souhaitez télécharger.

releaseNotes ou releaseNotesFile

Notes de version pour cette version.

Vous pouvez spécifier directement les notes de version ou le chemin d'accès à un fichier texte brut.

testers ou testersFile

Les adresses e-mail des testeurs auxquels vous souhaitez distribuer les builds.

Vous pouvez spécifier les testeurs sous la forme d'une liste d'adresses e-mail séparées par des virgules :

testers="ali@example.com, bri@example.com, cal@example.com"

Vous pouvez également spécifier le chemin d'accès à un fichier contenant une liste d'adresses e-mail séparées par des virgules :

testersFile="/path/to/testers.txt"
groups ou groupsFile

Les groupes de testeurs auxquels vous souhaitez distribuer les builds (voir Gérer les testeurs ). Les groupes sont spécifiés à l'aide de alias de groupe , que vous pouvez trouver dans l'onglet Testeurs de la console Firebase App Distribution.

Vous pouvez spécifier les groupes sous la forme d'une liste d'alias de groupe séparés par des virgules :

groups="qa-team, android-testers"

Vous pouvez également spécifier le chemin d'accès à un fichier contenant une liste d'alias de groupe séparés par des virgules :

groupsFile="/path/to/tester-groups.txt"
stacktrace

Imprime le stacktrace pour les exceptions utilisateur. Ceci est utile lors du débogage des problèmes.

Étape 4. Distribuez votre application aux testeurs

  1. Enfin, pour empaqueter votre application de test et inviter des testeurs, créez les cibles BUILD-VARIANT et appDistributionUpload BUILD-VARIANT avec le wrapper Gradle de votre projet, où BUILD-VARIANT est la saveur de produit facultative et le type de build que vous avez configurés à l'étape précédente. Pour plus d'informations sur les variantes de produit, consultez Configurer les variantes de build .

    Par exemple, pour distribuer votre application à l'aide de la variante de version release , exécutez la commande suivante :

    ./gradlew bundleRelease appDistributionUploadRelease
    

    Ou, si vous vous êtes authentifié avec votre compte Google et que vous n'avez pas fourni d'informations d'identification dans votre fichier de build Gradle, incluez la variable FIREBASE_TOKEN :

    export FIREBASE_TOKEN=1/a1b2c3d4e5f67890
    ./gradlew --stop // Only needed for environment variable changes
    ./gradlew bundleRelease appDistributionUploadRelease
    
  2. Vous pouvez également remplacer les valeurs définies dans votre fichier build.gradle en transmettant des arguments de ligne de commande sous la forme --<property-name>=<property-value> . Par exemple:

    • Pour importer une version de débogage dans App Distribution :

      ./gradlew bundleDebug appDistributionUploadDebug
          --artifactType="AAB"
      
    • Pour inviter des testeurs supplémentaires ou supprimer des testeurs existants de votre projet 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"
      

      Une fois qu'un testeur a été ajouté à votre projet Firebase, vous pouvez l'ajouter à des versions individuelles. Les testeurs qui sont supprimés n'auront plus accès aux versions de votre projet, mais pourront toujours conserver l'accès à vos versions pendant un certain temps.

    Vous pouvez également spécifier des testeurs en utilisant --file="/path/to/testers.txt" au lieu de --emails .

    Les tâches appDistributionAddTesters et appDistributionRemoveTesters acceptent également les arguments suivants :

    • projectNumber : votre numéro de projet Firebase.

    • serviceCredentialsFile : chemin d'accès à votre fichier d'informations d'identification de service Google. Il s'agit du même argument utilisé par l'action upload.

Le plugin Gradle génère les liens suivants après le téléchargement de la version. Ces liens vous aident à gérer les fichiers binaires et à vous assurer que les testeurs et autres développeurs disposent de la bonne version :

  • firebase_console_uri - Un lien vers la console Firebase affichant une seule version. Vous pouvez partager ce lien avec d'autres développeurs de votre organisation.
  • testing_uri - Un lien vers la version dans l'expérience du testeur (application native Android) qui permet aux testeurs d'afficher les notes de version et d'installer l'application sur leur appareil. Le testeur doit avoir accès à la version pour utiliser le lien.
  • binary_download_uri - Un lien signé qui télécharge et installe directement le binaire de l'application (fichier APK ou AAB). Le lien expire après une heure.

Une fois que vous avez distribué votre build, il devient disponible dans le tableau de bord App Distribution de la console Firebase pendant 150 jours (cinq mois). Lorsque la version est à 30 jours de l'expiration, un avis d'expiration apparaît à la fois dans la console et dans la liste des versions de votre testeur sur son appareil de test.

Les testeurs qui n'ont pas été invités à tester l'application reçoivent des invitations par e-mail pour commencer, et les testeurs existants reçoivent des notifications par e-mail indiquant qu'une nouvelle version est prête à être testée (lisez le guide de configuration du testeur pour savoir comment installer l'application de test). Vous pouvez surveiller l'état de chaque testeur - s'il a accepté l'invitation et s'il a téléchargé l'application - dans la console Firebase.

Les testeurs ont 30 jours pour accepter une invitation à tester l'application avant son expiration. Lorsqu'une invitation est à 5 jours de l'expiration, un avis d'expiration apparaît dans la console Firebase à côté du testeur sur une version. Une invitation peut être renouvelée en la renvoyant à l'aide du menu déroulant sur la ligne du testeur.

Prochaines étapes