Vous pouvez intégrer App Distribution dans votre processus de création Android à l'aide du plugin App Distribution Gradle. Le plugin vous permet de spécifier vos testeurs et vos notes de version dans le fichier Gradle de votre application, vous permettant ainsi de configurer des distributions pour différents types de build et variantes de votre application.
Ce guide décrit comment distribuer des APK aux testeurs à l'aide du plugin App Distribution Gradle.
Avant que tu commences
Si vous ne l'avez pas déjà fait, ajoutez Firebase à votre projet Android .
Si vous n'utilisez aucun autre produit Firebase, il vous suffit de créer un projet et d'enregistrer votre application. Cependant, si vous décidez d'utiliser des produits supplémentaires à l'avenir, assurez-vous de suivre toutes les étapes de la page liée ci-dessus.
Étape 1. Configurez 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 App Distribution Gradle 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.1" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.2.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.1' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.2.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 plugin 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' }
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 de télécharger 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 plugin Gradle recherche les informations d'identification de la CLI Firebase si aucune autre méthode d'authentification n'est utilisée.
L'authentification avec un compte de service vous permet d'utiliser le plugin de manière flexible avec votre système d'intégration continue (CI). Il existe deux manières de fournir les informations d'identification du compte de service :
- Transmettez le fichier de clé de votre compte de service à
build.gradle
. Cette méthode peut s'avérer pratique si vous disposez déjà du fichier de clé de votre compte de service dans votre environnement de build. - Définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
pour qu'elle pointe vers le fichier de clé de votre compte de service. Vous préférerez peut-être cette méthode si vous disposez déjà d'informations d'identification par défaut d'application (ADC) configurées pour un autre service Google (par exemple, Google Cloud).
Pour vous authentifier à l'aide des informations d'identification du compte de service :
- Sur la console Google Cloud, sélectionnez votre projet et créez un nouveau compte de service.
- Ajoutez le rôle d'administrateur de distribution d'applications Firebase .
- Créez une clé json privée et déplacez la clé vers un emplacement accessible à votre environnement de construction. Assurez-vous de conserver ce fichier dans un endroit sûr , car il accorde un accès administrateur à App Distribution dans votre projet Firebase.
- Ignorez cette étape si vous avez créé votre application après le 20 septembre 2019 : dans la console des API Google, activez l' API Firebase App Distribution. Lorsque vous y êtes invité, sélectionnez le projet portant le même nom que votre projet Firebase.
Fournissez ou localisez les informations d'identification de votre compte de service :
- Pour transmettre à Gradle la clé de votre compte de service, dans votre fichier
build.gradle
, définissez la propriétéserviceCredentialsFile
sur le fichier JSON de clé privée. Pour localiser vos informations d'identification avec ADC, définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
sur le chemin du fichier JSON de clé privée. Par exemple :export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Pour plus d’informations sur l’authentification avec ADC, lisez Fournir des informations d’identification à votre application.
- Pour transmettre à Gradle la clé de votre compte de service, dans votre fichier
Consultez Connectez-vous avec la CLI Firebase pour obtenir des instructions sur la façon d'authentifier votre projet.
É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 = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" 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 versions de produits .
Par exemple, pour distribuer les builds debug
et release
dans les versions de produit « démo » et « complète », 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 | L'ID d'application Firebase de votre application. Obligatoire uniquement si le plugin Google Services Gradle n'est pas installé. Vous pouvez trouver 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 du compte de service. |
artifactType | Spécifie le type de fichier de votre application. Peut être réglé sur |
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 soit spécifier directement les notes de version, soit 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 forme de 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 Vous pouvez spécifier les groupes sous forme de 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" |
testDevices ou testDevicesFile | Les types de distribution suivants font partie de la fonctionnalité bêta du testeur automatisé . Les appareils de test sur lesquels vous souhaitez distribuer les builds (voir Tests automatisés ). Vous pouvez spécifier les appareils de test sous forme de liste de spécifications d'appareil séparées par des points-virgules : 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 de périphérique séparées par des points-virgules : testDevicesFile="/path/to/testDevices.txt" |
testUsername | Le nom d'utilisateur pour la connexion automatique à utiliser lors des tests automatisés . |
testPassword ou testPasswordFile | Le 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 pour le champ du nom d'utilisateur pour la connexion automatique à utiliser lors des tests automatisés . |
testPasswordResource | Nom de la ressource pour le champ mot de passe pour la connexion automatique à utiliser lors des tests automatisés . |
testNonBlocking | Exécutez des tests automatisés de manière asynchrone. Visitez la console Firebase pour les résultats des tests automatiques. |
stacktrace | Imprime la trace de pile pour les exceptions utilisateur. Ceci est utile lors du débogage des problèmes. |
Étape 4. Distribuez votre application aux testeurs
Enfin, pour empaqueter votre application de test et inviter des testeurs, créez les cibles
BUILD-VARIANT
etappDistributionUpload BUILD-VARIANT
avec le wrapper Gradle de votre projet, où BUILD-VARIANT est la version de produit et le type de build facultatifs que vous avez configurés à l'étape précédente. Pour plus d'informations sur les versions de produit, consultez Configurer les variantes de build .Par exemple, pour distribuer votre application à l'aide de la variante de build
release
, exécutez la commande suivante :./gradlew assembleRelease appDistributionUploadRelease
Ou, si vous vous êtes authentifié avec votre compte Google et 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 assembleRelease appDistributionUploadRelease
Vous pouvez également remplacer les valeurs définies dans votre fichier
build.gradle
en passant des arguments de ligne de commande sous la forme de--<property-name>=<property-value>
. Par exemple:Pour télécharger une version de débogage sur App Distribution :
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
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 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
etappDistributionRemoveTesters
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 de téléchargement.
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 binaires et à garantir 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 accéder à la version pour pouvoir 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 au bout d'une heure.
Une fois que vous avez distribué votre build, elle devient disponible dans le tableau de bord App Distribution de la console Firebase pendant 150 jours (cinq mois). Lorsque la build arrive à 30 jours de son expiration, un avis d'expiration apparaît à 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 (lisez le guide de configuration du testeur pour obtenir des instructions sur la façon d'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 son expiration. Lorsqu'une invitation expire dans 5 jours, 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
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 pour installation.
Consultez l' atelier de programmation Android App Bundle pour découvrir comment distribuer les versions d'App Bundle étape par étape.
Découvrez les bonnes pratiques pour distribuer des applications Android aux testeurs d'assurance qualité à l'aide de CI/CD .