Ce guide explique comment distribuer des builds AAB aux testeurs à l'aide de fastlane, une plate-forme Open Source qui automatise la compilation et la publication d'applications iOS et Android. Il suit des instructions simples définies dans un Fastfile
. Une fois que vous avez configuré Fastlane et votre Fastfile
, vous pouvez intégrer App Distribution à votre configuration Fastlane.
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 Fastlane
Pour ajouter App Distribution à votre configuration Fastlane, exécutez la commande suivante à la racine de votre projet Android:
fastlane add_plugin firebase_app_distribution
Si la commande vous invite à sélectionner une option, sélectionnez
Option 3: RubyGems.org
.
Étape 2 : Authentifier avec Firebase
Avant de pouvoir utiliser le plug-in fastlane, vous devez d'abord vous authentifier avec votre projet Firebase de l'une des manières suivantes. Par défaut, le plug-in fastlane recherche les identifiants de la CLI Firebase si aucune autre méthode d'authentification n'est utilisée.
Étape 3 : Configurer votre fichier Fastfile et distribuer votre application
- Dans une voie
./fastlane/Fastfile
, ajoutez un blocfirebase_app_distribution
. Utilisez les paramètres suivants pour configurer la distribution:Paramètres firebase_app_distribution app
Obligatoire: ID d'application Firebase de votre application. Vous trouverez l'ID de l'application dans la console Firebase, sur la page Paramètres généraux.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Jeton de rafraîchissement imprimé lorsque vous authentifiez votre environnement de CI avec la CLI Firebase (pour en savoir plus, consultez la section Utiliser la CLI avec les systèmes de CI).
service_credentials_file
Chemin d'accès au fichier JSON de votre compte de service Google Consultez la section ci-dessus pour savoir comment vous authentifier à l'aide des identifiants du compte de service.
android_artifact_type
Indique le type de fichier Android (APK ou AAB).
android_artifact_path
Remplace
apk_path
(obsolète). Chemin absolu vers le fichier APK ou AAB que vous souhaitez importer. Si cet élément n'est pas spécifié, Fastlane détermine l'emplacement du fichier à partir de la voie dans laquelle il a été généré.release_notes
release_notes_file
Notes de version de ce build.
Vous pouvez spécifier les notes de version directement:
release_notes: "Text of release notes"
Vous pouvez également spécifier le chemin d'accès à un fichier texte brut:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Les adresses e-mail des testeurs que vous souhaitez inviter.
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 texte brut contenant une liste d'adresses e-mail séparées par une virgule:
testers_file: "/path/to/testers.txt"
groups
groups_file
Les groupes de testeurs que vous souhaitez inviter (consultez la section Gérer les testeurs). Les groupes sont spécifiés à l'aide d'
alias de groupe , que vous pouvez rechercher dans la console Firebase.Vous pouvez spécifier les groupes sous forme de liste d'éléments séparés par une virgule:
groups: "qa-team, trusted-testers"
Vous pouvez également spécifier le chemin d'accès à un fichier texte brut contenant une liste de noms de groupes séparés par une virgule:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
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 la section Tests automatisés).
Vous pouvez spécifier les appareils de test sous forme de liste d'appareils de test séparés par un point-virgule:
test_devices: "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 texte brut contenant une liste d'appareils de test séparés par une virgule:
test_devices_file: "/path/to/test-devices.txt"
test_username
Nom d'utilisateur à utiliser pour la connexion automatique lors des tests automatisés.
test_password
test_password_file
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:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Nom de la ressource du champ du nom d'utilisateur à utiliser pour la connexion automatique lors des tests automatisés.
test_password_resource
Nom de la ressource du champ de mot de passe à utiliser pour la connexion automatique lors des tests automatisés.
test_non_blocking
Exécutez des tests automatisés de manière asynchrone. Accédez à la console Firebase pour consulter les résultats des tests automatiques.
debug
Un indicateur booléen. Vous pouvez définir cette valeur sur
true
pour imprimer une sortie de débogage détaillée.
platform :android do desc "My awesome app" lane :distribute do build_android_app(task: "bundle", ...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!", android_artifact_type: "AAB" ) end end
Pour rendre le build disponible pour les testeurs, exécutez votre canal :
fastlane <lane>
La valeur de retour de l'action est un hachage représentant la version importée.
Ce hachage est également disponible avec lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
.
Pour en savoir plus sur les champs disponibles dans ce hachage, consultez la documentation de l'API REST.
Le plug-in Fastlane 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:
- Lien vers la console Firebase affichant une seule version. Vous pouvez partager ce lien avec d'autres développeurs de votre organisation.
- Lien vers la version dans l'expérience de test (application native Android) permettant 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.
- 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. Lorsque le build est sur le point d'expirer dans 30 jours, un avis d'expiration s'affiche dans la console et dans la liste des builds du testeur sur son appareil de test.
Les testeurs qui n'ont pas été invités à tester l'application auparavant reçoivent des invitations par e-mail pour commencer. Les testeurs existants reçoivent des notifications par e-mail indiquant qu'un nouveau build est prêt à être testé. Pour savoir comment installer l'application de test, consultez le guide de configuration du testeur. Vous pouvez surveiller l'état de chaque testeur pour déterminer s'il a accepté l'invitation et s'il a téléchargé l'application dans la console Firebase.
(Facultatif) Pour incrémenter automatiquement votre numéro de build chaque fois que vous créez une version dans App Distribution, vous pouvez utiliser l'action firebase_app_distribution_get_latest_release
et, par exemple, le plug-in increment_version_code
fastlane.
Le code suivant montre comment incrémenter automatiquement votre numéro de build:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Pour en savoir plus sur l'action firebase_app_distribution_get_latest_release
, consultez Obtenir des informations sur la dernière version de votre application.
Étape 4 (facultatif) Gérer les testeurs de la distribution
Vous pouvez ajouter et supprimer des testeurs à votre projet ou groupe à l'aide de votre fichier Fastfile
ou en exécutant directement des actions Fastlane. L'exécution d'actions directement remplace les valeurs définies dans votre Fastfile
.
Une fois qu'un testeur a été ajouté à votre projet Firebase, vous pouvez l'ajouter à des versions individuelles. Les testeurs qui sont supprimés de votre projet Firebase n'ont plus accès aux versions de votre projet, mais ils peuvent conserver l'accès à vos versions pendant une période donnée.
Si vous avez un grand nombre de testeurs, envisagez d'utiliser des groupes.
Utiliser "Fastfile
"
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Exécuter des actions Fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Vous pouvez également spécifier des testeurs à l'aide de --file="/path/to/testers.txt
au lieu de --emails
.
Les tâches firebase_app_distribution_add_testers
et firebase_app_distribution_remove_testers
acceptent également les arguments suivants:
project_name
: numéro de votre projet Firebase.group_alias
(facultatif): si spécifié, les testeurs sont ajoutés au groupe spécifié (ou supprimés de celui-ci).service_credentials_file
: chemin d'accès au fichier d'identifiants de service Google.firebase_cli_token
: jeton d'authentification pour la CLI Firebase.
service_credentials_file
et firebase_cli_token
sont les mêmes arguments utilisés par l'action d'importation.
Étape 5 (facultatif) Obtenir des informations sur la dernière version de votre application
Vous pouvez utiliser l'action firebase_app_distribution_get_latest_release
pour extraire des informations sur la dernière version de votre application dans la distribution des applications, y compris des informations sur la version de l'application, les notes de version et l'heure de création. Les cas d'utilisation incluent l'augmentation automatique de la version et le transfert des notes de version de la version précédente.
La valeur renvoyée par l'action est un hachage représentant la dernière version.
Ce hachage est également disponible avec lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
.
Pour en savoir plus sur les champs disponibles dans ce hachage, consultez la documentation de l'API REST.
Paramètres
Paramètres firebase_app_distribution_get_latest_release | |
---|---|
app
|
Obligatoire: ID d'application Firebase de votre application. Vous trouverez l'ID de l'application dans la console Firebase, sur la page Paramètres généraux. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token
|
Jeton de rafraîchissement imprimé lorsque vous authentifiez votre environnement de CI avec la CLI Firebase (pour en savoir plus, consultez la section Utiliser la CLI avec les systèmes de CI). |
service_credentials_file
|
Chemin d'accès au fichier JSON de votre compte de service Google Consultez la section ci-dessus pour savoir comment vous authentifier à l'aide des identifiants du compte de service. |
debug
|
Un indicateur booléen. Vous pouvez définir cette valeur sur |
É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.
Découvrez les bonnes pratiques pour distribuer des applications Android aux testeurs de contrôle qualité à l'aide de la CI/CD.