Vous pouvez intégrer App Distribution à votre processus de compilation Android à l'aide du plug-in Gradle App Distribution. Le plug-in vous permet de spécifier vos testeurs et les notes de version dans le fichier Gradle de votre application, ce qui vous permet de configurer les distributions pour différents types de compilation et variantes de votre application.
Ce guide explique comment distribuer des Android App Bundles (AAB) aux testeurs à l'aide du plug-in Gradle App Distribution.
App Distribution s'intègre au service de partage d'applications interne de Google Play pour traiter les AAB que vous importez et distribuer des APK optimisés selon la configuration des appareils de vos testeurs. La distribution d'AAB vous permet d'effectuer les opérations suivantes:
Exécutez des APK optimisés (distribués par Google Play) qui sont optimisés pour les appareils de vos testeurs.
Identifiez et déboguez les problèmes spécifiques à un appareil.
Testez les fonctionnalités des app bundles, comme 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 au propriétaire d'un projet Firebase de vous attribuer le rôle approprié 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 les questions fréquentes sur les autorisations et l'accès aux projets Firebase.
Le tableau suivant s'applique à l'association d'une application Firebase à une application dans Google Play, ainsi qu'à l'importation d'AAB.
Action dans la console Firebase | Autorisation IAM requise | Rôles IAM incluant les autorisations requises par défaut | Rôle(s) supplémentaire(s) requis(s) |
---|---|---|---|
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 |
Importer des AAB dans App Distribution | firebaseappdistro.releases.update
|
L'un des rôles suivants : | –– |
Avant de commencer
Si ce n'est pas encore fait, ajoutez Firebase à votre projet Android. À la fin de ce workflow, vous disposerez d'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, veillez à suivre toutes les étapes de la section Ajouter Firebase à votre projet Android.
Pour associer Firebase à Google Play et importer des AAB, assurez-vous que votre application répond aux exigences suivantes:
L'application dans Google Play et l'application Android pour Firebase sont enregistrées sous le même nom de package.
L'application dans Google Play est configurée dans le tableau de bord des applications et distribuée dans l'un des canaux Google Play (tests internes, de tests fermés, de tests ouverts ou de production).
Une fois l'examen de l'application dans Google Play terminé, celle-ci est publiée. Votre application est publiée si la colonne État de l'application indique l'un des états suivants : "Tests internes" (pas "Brouillon" ni "Tests internes"), "Tests fermés", "Tests ouverts" ou "Production".
Associez votre application Android pour Firebase à votre compte de développeur Google Play:
Dans la console Firebase, accédez à
, puis sélectionnez l'onglet Intégrations. Paramètres du projet Sur la fiche Google Play, cliquez sur Associer.
Si vous avez déjà effectué l'association, cliquez sur Gérer.Suivez les instructions à l'écran pour activer l'intégration App Distribution et sélectionner les applications Android pour Firebase à associer à Google Play.
En savoir plus sur l'association à Google Play
Étape 1 : Configurer votre projet Android
Dans votre fichier Gradle au niveau racine (au niveau du projet) (
<project>/build.gradle.kts
ou<project>/build.gradle
), ajoutez le plug-in Gradle App Distribution en tant que dépendance:Kotlin
plugins { // ... id("com.android.application") version "7.3.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.4.2" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "5.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.3.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.4.2' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '5.0.0' apply false }
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 Gradle App Distribution: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 vous êtes protégé par un pare-feu ou un proxy d'entreprise, ajoutez la propriété système Java suivante, qui permet à App Distribution d'importer vos distributions dans Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Étape 2 : Authentifier avec Firebase
Avant de pouvoir utiliser le plug-in 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 identifiants de la CLI Firebase si aucune autre méthode d'authentification n'est utilisée.
Étape 3 : Configurer vos propriétés de distribution
Dans votre fichier Gradle de 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 le build release
aux testeurs, procédez comme suit :
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 compilation et les types de produit.
Par exemple, pour distribuer des builds debug
et release
dans les types de produit "demo" et "full", 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:
App Distribution Paramètres de compilation | |
---|---|
appId
|
ID de l'application Firebase de votre application. N'est requis que si le plug-in Gradle des services Google n'est pas installé. Vous trouverez l'ID de l'application dans le fichier appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
Chemin d'accès au fichier JSON de clé privée de votre compte de service. Obligatoire uniquement si vous utilisez l'authentification par compte de service. |
artifactType
|
Spécifie le type de fichier de votre application. Il peut s'agir de |
artifactPath
|
Chemin absolu vers le fichier APK ou AAB que vous souhaitez importer. |
releaseNotes ou releaseNotesFile |
Notes de version de ce build. Vous pouvez spécifier les notes de version directement ou le chemin d'accès à un fichier texte brut. |
testers ou testersFile |
Adresses e-mail des testeurs auxquels vous souhaitez distribuer des builds. Vous pouvez spécifier les testeurs sous la forme d'une liste d'adresses e-mail séparées par une virgule: 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 une virgule: testersFile="/path/to/testers.txt" |
groups ou groupsFile |
Les groupes de testeurs auxquels vous souhaitez distribuer des builds (voir Gérer les testeurs).
Les groupes sont spécifiés à l'aide d' Vous pouvez spécifier les groupes sous la forme d'une liste d'alias de groupe séparés par une virgule: 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 une virgule: groupsFile="/path/to/tester-groups.txt" |
testDevices ou testDevicesFile |
Les types de distribution suivants font partie de la fonctionnalité bêta du testeur automatique. Les appareils de test sur lesquels vous souhaitez distribuer des builds (voir Tests automatisés). Vous pouvez spécifier les appareils de test sous la forme d'une liste de spécifications d'appareils séparées par une virgule: testDevices="model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait" Vous pouvez également spécifier le chemin d'accès à un fichier contenant une liste de spécifications d'appareils séparées par une virgule: testDevicesFile="/path/to/testDevices.txt" |
testUsername |
Nom d'utilisateur à utiliser pour la connexion automatique lors des tests automatisés. |
testPassword ou testPasswordFile |
Mot de passe de connexion automatique à utiliser lors des tests automatisés. Vous pouvez également spécifier le chemin d'accès à un fichier texte brut contenant un mot de passe: testPasswordFile="/path/to/testPassword.txt" |
testUsernameResource |
Nom de la ressource du champ du nom d'utilisateur à utiliser pour la connexion automatique lors des tests automatisés. |
testPasswordResource |
Nom de la ressource du champ de mot de passe à utiliser pour la connexion automatique lors des tests automatisés. |
testNonBlocking |
Exécutez des tests automatisés de manière asynchrone. Accédez à la console Firebase pour consulter les résultats des tests automatiques. |
stacktrace
|
Affiche la trace de la pile pour les exceptions utilisateur. Cela est utile pour déboguer les problèmes. |
Étape 4. Distribuer votre application aux testeurs
Enfin, pour empaqueter votre application de test et inviter des testeurs, compilez les cibles
BUILD-VARIANT
etappDistributionUploadBUILD-VARIANT
avec le wrapper Gradle de votre projet, où BUILD-VARIANT est le type de produit et de compilation facultatif que vous avez configuré à l'étape précédente. Pour en savoir plus sur les types de produit, consultez Configurer des variantes de compilation.Par exemple, pour distribuer votre application à l'aide de la variante de compilation
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'identifiants dans votre fichier de compilation Gradle, incluez la variable
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Vous pouvez également remplacer les valeurs définies dans votre fichier
build.gradle
en transmettant des arguments de ligne de commande au format--<property-name>=<property-value>
. Exemple :Pour importer une version de débogage dans App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Pour inviter d'autres testeurs 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'ont plus accès aux versions de votre projet, mais peuvent conserver l'accès à vos versions pendant une période donnée.
Vous pouvez également spécifier des testeurs à l'aide de
--file="/path/to/testers.txt"
au lieu de--emails
.Les tâches
appDistributionAddTesters
etappDistributionRemoveTesters
acceptent également les arguments suivants:projectNumber
: numéro de votre projet Firebase.serviceCredentialsFile
: chemin d'accès au fichier d'identifiants de service Google. Il s'agit du même argument que celui utilisé par l'action d'importation.
Le plug-in Gradle génère les liens suivants après l'importation de la version. Ces liens vous aident à gérer les binaires et à vous assurer que les testeurs et les autres développeurs disposent de la version appropriée:
firebase_console_uri
: lien vers la console Firebase affichant une seule version. Vous pouvez partager ce lien avec d'autres développeurs de votre organisation.testing_uri
: lien vers la version dans l'expérience de test (application native Android) qui permet aux testeurs de consulter les notes de version et d'installer l'application sur leur appareil. Le testeur doit avoir accès à la version pour pouvoir utiliser le lien.binary_download_uri
: lien signé qui télécharge et installe directement le binaire de l'application (fichier APK ou AAB). Le lien expire au bout d'une heure.
Une fois que vous avez distribué votre build, il est disponible dans le tableau de bord App Distribution de la console Firebase pendant 150 jours (cinq mois). Lorsque le build est sur le point d'expirer dans 30 jours, une notification d'expiration s'affiche à la fois dans la console et dans la liste des builds 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 (consultez le guide de configuration des testeurs 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 disposent de 30 jours pour accepter une invitation à tester l'application avant qu'elle n'expire. Lorsqu'une invitation est sur le point d'expirer dans cinq jours, une notification d'expiration s'affiche dans la console Firebase à côté du testeur d'une version. Vous pouvez renouveler une invitation en la renvoyant à l'aide du menu déroulant de la ligne du testeur.
Étapes suivantes
Implémentez des commentaires dans l'application pour permettre aux testeurs d'envoyer facilement des commentaires sur votre application (y compris des captures d'écran).
Découvrez comment afficher des alertes dans l'application à vos testeurs lorsque de nouvelles versions de votre application sont disponibles à l'installation.
Consultez l'atelier de programmation Android App Bundle pour découvrir comment distribuer les versions d'app bundles étape par étape.
Découvrez les bonnes pratiques pour distribuer des applications Android aux testeurs de contrôle qualité à l'aide de la CI/CD.