Vous pouvez distribuer des builds aux testeurs à l'aide de
fastlane,
une plate-forme Open Source qui automatise la création et la publication d'applications iOS et Android Elle 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.
É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 à choisir une option, sélectionnez
Option 3: RubyGems.org.
Étape 2. S'authentifier auprès de Firebase
Avant de pouvoir utiliser le plug-in 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 identifiants de la CLI Firebase si aucune autre méthode d'authentification n'est utilisée.
Étape 3. Configurer votre Fastfile et distribuer votre application
- Dans une voie
./fastlane/Fastfile, ajoutez unfirebase_app_distributionbloc. Utilisez les paramètres suivants pour configurer la distribution :Paramètres firebase_app_distribution appObligatoire uniquement si votre application ne contient pas de fichier de configuration Firebase (
GoogleService-Info.plist) : ID d'application Firebase de votre application. Vous trouverez l'ID d'application dans la console Firebase, sur la page "Paramètres généraux".app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_pathChemin d'accès à votre fichier
GoogleService-Info.plist, par rapport au chemin d'accès au produit archivé. Défini surGoogleService-Info.plistpar défaut.Le fichier est utilisé pour obtenir l'ID d'application Firebase de votre application si le paramètre
appn'est pas spécifié.firebase_cli_tokenJetons d'actualisation qui s'affiche lorsque vous authentifiez votre environnement d'intégration continue avec la Firebase CLI (pour en savoir plus, consultez Utiliser la CLI avec les systèmes d'intégration continue ).
service_credentials_fileChemin d'accès au fichier JSON de votre compte de service Google. Pour savoir comment vous authentifier à l'aide des identifiants du compte de service, consultez la section ci-dessus.
ipa_pathRemplace
apk_path(obsolète). Chemin d'accès absolu au fichier IPA que vous souhaitez importer. S'il 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_fileNotes de version pour ce build.
Vous pouvez spécifier les notes de version directement :
release_notes: "Text of release notes"
Ou spécifier le chemin d'accès à un fichier texte brut :
release_notes_file: "/path/to/release-notes.txt"
testers
testers_fileAdresses e-mail des testeurs que vous souhaitez inviter.
Vous pouvez spécifier les testeurs sous forme de 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_fileGroupes de testeurs que vous souhaitez inviter (consultez Gérer les testeurs). Les groupes sont spécifiés à l'aide d'
alias de groupe , que vous pouvez rechercher dans la Firebase console.Vous pouvez spécifier les groupes sous forme de liste séparée 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
Appareils de test sur lesquels vous souhaitez exécuter les tests de l'agent App Testing.
Vous pouvez spécifier les appareils de test sous forme de liste de spécifications d'appareils séparées par un point-virgule :
test_devices: "model=shiba,version=34,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 un point-virgule :
test_devices_file: "/path/to/test-devices.txt"
test_usernameNom d'utilisateur à utiliser pour la connexion automatique lors des tests de l'agent App Testing.
test_password
test_password_fileMot de passe à utiliser pour la connexion automatique lors des tests de l'agent App Testing.
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_resourceNom de la ressource pour le champ de nom d'utilisateur à utiliser pour la connexion automatique lors des tests de l'agent App Testing.
test_password_resourceNom de la ressource pour le champ de mot de passe à utiliser pour la connexion automatique lors des tests de l'agent App Testing.
test_non_blockingSi cette option est définie lors de l'exécution des tests de l'agent App Testing, la commande démarre les tests, puis est immédiatement renvoyée au lieu d'attendre qu'ils soient terminés. Pour afficher les résultats des tests, accédez à la console Firebase. Si cet indicateur n'est pas défini, la commande se bloque jusqu'à ce que les tests soient terminés et quitte avec un code d'échec si l'un des tests échoue.
debugOption booléenne. Vous pouvez définir cette option sur
truepour imprimer des résultats de débogage détaillés.
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 le build disponible pour les testeurs, exécutez votre voie :
fastlane <lane>
La valeur renvoyée par l'action est un hachage représentant la version importée.
Ce hachage est également disponible à l'aide de 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 bonne version :
- 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 testeur (clip Web iOS) 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 pouvoir utiliser le lien.
- Lien signé qui télécharge et installe directement le binaire de l'application (fichier IPA). Le lien expire au bout d'une heure.
Une fois que vous avez distribué votre build, il est disponible dans le App Distribution tableau de bord de la Firebase console pendant 150 jours. Lorsque le build arrive à 30 jours de son expiration, 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 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 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 Firebase console.
(Facultatif) Pour incrémenter automatiquement le numéro de votre build chaque fois que vous créez
une version dans App Distribution, vous pouvez utiliser l'
firebase_app_distribution_get_latest_release action et l'
increment_build_number action.
Le code suivant montre comment incrémenter automatiquement votre numéro de version :
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é du plug-in fastlane, consultez Obtenir des informations sur la dernière version de votre application.
Étape 4 (facultative). 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 directe d'actions remplace 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_testersExé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 votre service Google.firebase_cli_token: jeton d'authentification pour la CLI Firebase.
service_credentials_file et firebase_cli_token sont les mêmes arguments que ceux utilisés par l'action d'importation.
Étape 5 (facultative). 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 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 à l'aide de 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 uniquement si votre application ne contient pas de fichier de configuration Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
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
|
Jetons d'actualisation qui s'affiche lorsque vous authentifiez votre environnement d'intégration continue avec la Firebase CLI (pour en savoir plus, consultez Utiliser la CLI avec les systèmes d'intégration continue ). |
service_credentials_file
|
Chemin d'accès au fichier JSON de votre compte de service Google. Pour savoir comment vous authentifier à l'aide des identifiants du compte de service, consultez la documentation précédente. |
service_credentials_json_data
|
Contenu du fichier JSON du compte de service Google. Pour savoir comment vous authentifier à l'aide des identifiants du compte de service, consultez la documentation précédente. |
debug
|
Option booléenne. Vous pouvez définir cette option sur |
Étapes suivantes
Pour enregistrer d'autres appareils manuellement ou par programmation, consultez Enregistrer des appareils iOS supplémentaires.
Découvrez les bonnes pratiques pour distribuer des applications Apple aux testeurs QA à l'aide de l'intégration continue/du déploiement continu et de fastlane.