Vous pouvez distribuer des versions aux testeurs à l'aide de fastlane , une plate-forme open source qui automatise la création et la publication d'applications iOS et Android. Il suit des instructions simples définies dans un Fastfile
. Après avoir configuré Fastlane et votre Fastfile
, vous pouvez intégrer App Distribution à votre configuration Fastlane.
Étape 1. Configurer Fastlane
Pour ajouter App Distribution à votre configuration fastlane, exécutez la commande suivante à partir de la racine de votre projet iOS :
fastlane add_plugin firebase_app_distribution
Si la commande vous invite avec une option, sélectionnez
Option 3: RubyGems.org
.
Étape 2. Authentifiez-vous avec Firebase
Avant de pouvoir utiliser le plugin fastlane, 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 fastlane 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 plug-in 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 à l'action
firebase_app_distribution
. Vous pouvez trouver cette méthode pratique si vous avez déjà votre fichier de clé de compte de service dans votre environnement de génération. - Définissez la variable d'environnement
GOOGLE_APPLICATION_CREDENTIALS
pour qu'elle pointe vers le fichier de clé de votre compte de service. Vous pouvez préférer cette méthode si vous avez déjà configuré les informations d'identification par défaut de l'application (ADC) pour un autre service Google (par exemple, Google Cloud).
- Dans Google Cloud Console, 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 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 recherchez les informations d'identification de votre compte de service :
- Pour transmettre la clé de votre compte de service à l'action
firebase_app_distribution
de votre voie, définissez le paramètreservice_credentials_file
avec le chemin d'accès à votre 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, consultez Fournir des informations d'identification à votre application.
- Pour transmettre la clé de votre compte de service à l'action
Consultez Se connecter avec la CLI Firebase pour savoir comment authentifier votre projet.
Étape 3. Configurez votre Fastfile et distribuez 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
Requis uniquement si votre application ne contient pas de fichier de configuration Firebase (
GoogleService-Info.plist
) : ID d'application Firebase de votre application. Vous pouvez trouver l'ID d'application dans la console Firebase, sur la page Paramètres généraux .app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
Le chemin d'accès à votre fichier
GoogleService-Info.plist
, par rapport au chemin d'accès au produit archivé. Défini surGoogleService-Info.plist
par défaut.Le fichier est utilisé pour obtenir l'ID d'application Firebase de votre application si le paramètre
app
n'est pas spécifié.firebase_cli_token
Un jeton d'actualisation qui est imprimé lorsque vous authentifiez votre environnement CI avec la CLI Firebase (consultez Utiliser la CLI avec les systèmes CI pour plus d'informations).
service_credentials_file
Chemin d'accès au fichier JSON de votre compte de service Google. Voir ci-dessus pour savoir comment s'authentifier à l'aide des informations d'identification du compte de service .
ipa_path
Remplace
apk_path
(obsolète). Chemin absolu vers le fichier IPA que vous souhaitez télécharger. S'il n'est pas spécifié, fastlane détermine l'emplacement du fichier à partir de la voie dans laquelle le fichier a été généré.release_notes
release_notes_file
Notes de version pour cette version.
Vous pouvez soit spécifier directement les notes de version :
release_notes: "Text of release notes"
Ou spécifiez le chemin d'accès à un fichier texte :
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 des virgules :
testers: "ali@example.com, bri@example.com, cal@example.com"
Vous pouvez également spécifier le chemin d'accès à un fichier texte contenant une liste d'adresses e-mail séparées par des virgules :
testers_file: "/path/to/testers.txt"
groups
groups_file
Les groupes de testeurs que vous souhaitez inviter (voir Gérer les testeurs ). Les groupes sont spécifiés à l'aide de
alias de groupe , que vous pouvez rechercher dans la console Firebase.Vous pouvez spécifier les groupes sous forme de liste séparée par des virgules :
groups: "qa-team, trusted-testers"
Ou, vous pouvez spécifier le chemin d'accès à un fichier texte contenant une liste de noms de groupes séparés par des virgules :
groups_file: "/path/to/groups.txt"
debug
Un drapeau booléen. Vous pouvez le définir sur
true
pour imprimer une sortie de débogage détaillée.
Par exemple:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Pour rendre la version disponible pour les testeurs, exécutez votre voie :
fastlane <lane>
La valeur de retour de l'action est un hachage représentant la version téléchargée. Ce hachage est également disponible en utilisant lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
. Pour plus d'informations sur les champs disponibles dans ce hachage, consultez la documentation de l'API REST .
Le plugin fastlane 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 :
- Un lien vers la console Firebase affichant une version unique. Vous pouvez partager ce lien avec d'autres développeurs de votre organisation.
- Un lien vers la version dans l'expérience du testeur (clip Web iOS) 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 utiliser le lien.
- Un lien signé qui télécharge et installe directement le binaire de l'application (fichier IPA). Le lien expire après 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 la build est à 30 jours de l'expiration, un avis d'expiration apparaît 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 reçoivent des invitations par e-mail pour commencer. Les testeurs existants reçoivent des notifications par e-mail indiquant qu'une nouvelle version est prête à être testée. Pour savoir comment installer l'application de test, consultez Se configurer en tant que 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 nouvelle version dans App Distribution, vous pouvez utiliser l'action firebase_app_distribution_get_latest_release
et l' action increment_build_number
. Le code suivant fournit un exemple d'incrémentation automatique de votre numéro de build :
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Pour en savoir plus sur cette fonctionnalité de plug-in fastlane, consultez Obtenir des informations sur la dernière version de votre application .
Étape 4 (facultatif). Gérer les testeurs pour la distribution
Vous pouvez ajouter et supprimer des testeurs de votre projet ou groupe à l'aide de votre fichier Fastfile
ou en exécutant directement des actions fastlane. L'exécution d'actions remplace directement les valeurs définies dans votre Fastfile
.
Une fois qu'un testeur est 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 un certain temps.
Si vous avez un grand nombre de testeurs, vous devriez envisager 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écutez 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 en utilisant --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
: votre numéro de projet Firebase. -
group_alias
(facultatif) : si spécifié, les testeurs sont ajoutés (ou supprimés) au groupe spécifié. -
service_credentials_file
: chemin d'accès à votre fichier d'informations d'identification de service Google. -
firebase_cli_token
: jeton d'authentification pour Firebase CLI.
Le service_credentials_file
et le firebase_cli_token
sont les mêmes arguments utilisés par l'action de téléchargement.
É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 récupérer des informations sur la dernière version de votre application dans App Distribution, y compris les informations de 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 report des notes de version de la version précédente.
La valeur de retour de l'action est un hachage représentant la dernière version. Ce hachage est également disponible en utilisant lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
. Pour plus d'informations 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 | Requis uniquement si votre application ne contient pas de fichier de configuration Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | Le chemin d'accès à votre fichier Le fichier est utilisé pour obtenir l'ID d'application Firebase de votre application si le paramètre |
firebase_cli_token | Un jeton d'actualisation qui est imprimé lorsque vous authentifiez votre environnement CI avec la CLI Firebase (consultez Utiliser la CLI avec les systèmes CI pour plus d'informations). |
service_credentials_file | Chemin d'accès au fichier JSON de votre compte de service Google. Voir ci-dessus pour savoir comment s'authentifier à l'aide des informations d'identification du compte de service . |
debug | Un drapeau booléen. Vous pouvez le définir sur |
Prochaines étapes
Pour enregistrer plus d'appareils manuellement ou par programmation, voir Enregistrer des appareils iOS supplémentaires .
Découvrez les meilleures pratiques pour distribuer des applications Apple aux testeurs QA à l'aide de CI/CD et fastlane .