1. Avant de commencer
Dans cet atelier de programmation, vous allez apprendre à utiliser Firebase App Distribution et son plug-in fastlane pour distribuer une application iOS aux testeurs, collecter les UDID des appareils de test et les enregistrer dans le profil de provisionnement de votre application. Vous pourrez ainsi distribuer rapidement des builds ad hoc aux testeurs.
Points abordés
- Importer et distribuer une application iOS en version préliminaire (ad hoc) aux testeurs à l'aide de Firebase App Distribution et de fastlane
- S'inscrire en tant que testeur et télécharger l'application distribuée sur un appareil de test
- Enregistrer rapidement des appareils de test en exportant leurs UDID avec le plug-in fastlane d'App Distribution.
- Mettre à jour le profil de provisionnement de votre application et le réimporter pour la distribution
Prérequis
- Un compte Google
- Un ordinateur Apple avec Xcode 11.7 ou version ultérieure installé
- Une application iOS préversion créée ad hoc dans Xcode
- Un compte de développeur Apple payant
- Un appareil iOS physique pour les tests
L' application du simulateur iOS fonctionnera pour la majeure partie de l'atelier de programmation, mais les simulateurs ne peuvent pas télécharger les versions.
Vous pouvez toujours vérifier que la configuration a fonctionné en vérifiant que le bouton "Télécharger" s'affiche dans l'application Web du testeur de distribution d'applications.
2. Commencer
Configurer fastlane
App Distribution s'intègre à fastlane pour vous permettre d'automatiser la distribution des versions préliminaires de votre application. App Distribution s'intègre à votre configuration fastlane.
- Installez et configurez fastlane.
- Exécutez
fastlane init
dans le répertoire racine de votre projet lors de la configuration, puis sélectionnez "Configuration manuelle". Un sous-répertoire appeléfastlane
s'affiche, contenantFastfile
,Appfile
etPluginfile
, que vous utiliserez pour configurer fastlane.
Installer la CLI Firebase
Vous devez également installer la CLI Firebase. Si vous utilisez macOS ou Linux, vous pouvez exécuter la commande cURL suivante:
curl -sL https://firebase.tools | bash
Si vous utilisez Windows, consultez les instructions d'installation pour obtenir un binaire autonome ou pour effectuer l'installation via npm
.
Une fois la CLI installée, l'exécution de firebase --version
doit indiquer une version de 12.0.0
ou ultérieure:
$ firebase --version 12.0.0
3. Créer votre application avec fastlane
Créer votre application
- Définissez des variables globales pour fastlane dans votre
./fastlane/Appfile.
. Incluez l'ID de votre application et votre ID Apple:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- Créez votre première voie et utilisez l'action
build_app
(également appeléegym
) de Fastlane pour créer votre application en ajoutant ce qui suit à votre./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- Signez votre application pour la distribuer.
Pour cet atelier de programmation, vous allez gérer votre propre certification et votre propre profil à l'aide de get_certificates
(également appelé cert
), qui génère des certificats de signature localement et stocke tout dans votre trousseau macOS. En règle générale, cependant, vous devez utiliser fastlane sync_code_signing action
(également appelé match
) pour gérer de manière sécurisée les profils et les certificats de signature de code de votre équipe.
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- Configurez un profil de provisionnement pour votre application à l'aide de l'action
get_provisioning_profile
(également appeléesigh
). Vous pourrez ainsi partager votre application avec les testeurs.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [Facultatif] Si vous n'avez jamais exécuté votre application auparavant, exécutez la commande suivante pour la créer dans la console de développement Apple:
$ fastlane produce --skip_itc
- Enfin, créez votre application en exécutant le canal.
Vous devrez saisir votre ID Apple, votre mot de passe (stocké dans votre trousseau) et l'ID du bundle de votre application.
$ fastlane build
Si vous rencontrez des problèmes, consultez le guide de dépannage rapide.
4. Importer votre application dans Firebase
Maintenant que vous avez créé votre application, vous pouvez l'importer dans App Distribution.
Créer et configurer un projet Firebase
- Connectez-vous à Firebase.
- Dans la console Firebase,créez ou ajoutez un projet, puis nommez-le "UDID Export Codelab".
Vous n'avez pas besoin d'activer Google Analytics pour ce projet.
- Cliquez sur Create Project (Créer un projet).
Ajouter votre application iOS au projet
- Cliquez sur l'icône iOS pour créer une application iOS Firebase, puis saisissez l'ID du bundle de votre application.
- Ignorez les prochaines étapes, puis cliquez sur Continue to console (Accéder à la console). Vous ajouterez des SDK à votre application ultérieurement.
Votre projet et votre application sont désormais disponibles sur la page Présentation du projet.
Activer App Distribution
- Dans la section "Publication et surveillance", cliquez sur Distribution de l'application.
- Après avoir accepté les conditions, cliquez sur "Commencer" pour activer App Distribution pour votre application.
Configurer une distribution dans Fastlane
- Exécutez la commande suivante à partir de la racine de votre projet iOS pour ajouter la distribution d'applications à votre configuration fastlane.
Si la commande vous invite à sélectionner une option, sélectionnez Option 3: RubyGems.org:
$ fastlane add_plugin firebase_app_distribution
- Vérifiez que le plug-in est installé:
$ fastlane
Le résultat doit afficher fastlane-plugin-firebase_app_distribution
dans la liste des plug-ins installés.
- Après avoir confirmé que le plug-in est installé, choisissez l'option 0 pour annuler.
Authentifier votre projet Firebase
Pour utiliser le plug-in fastlane, vous devez d'abord authentifier votre projet Firebase.
- Exécutez la commande suivante pour associer la CLI à votre compte Google:
$ firebase login
- Lorsque la commande imprime un lien d'authentification, ouvrez-le dans un navigateur.
- Lorsque vous y êtes invité, connectez-vous à votre compte Google et autorisez l'accès à votre projet Firebase.
Distribuer votre application
Vous êtes maintenant prêt à distribuer votre application.
- En haut de votre
./fastlane/Fastfile
, définissez une variable appeléefirebase_app_id
. Remplacez<your_app_id>
par l'ID d'application Firebase de l'application que vous avez créée (il se trouve sur la page Paramètres du projet).
Fastfile
est écrit en Ruby. Utilisez donc la syntaxe Ruby pour définir des variables.
firebase_app_id = "<your_app_id>"
- Ajoutez une voie appelée
distribute
qui appelle la voie de compilation, puis distribuez votre application à l'aide de l'actionfirebase_app_distribution
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- Exécutez la nouvelle voie pour compiler votre application et créer une distribution.
$ fastlane distribute
À ce stade, votre fichier Fastfile devrait se présenter comme suit:
firebase_app_id = "<your Firebase app ID>"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
Une fois la console Firebase actualisée, la nouvelle version de votre application s'affiche.
5. Inviter des testeurs à télécharger votre application
Lorsqu'un testeur accepte une invitation à tester un build ad hoc, il est invité à autoriser le partage de son UDID. S'il accepte, App Distribution collecte les informations sur son appareil et vous en informe par e-mail. Dans cette section, vous allez vous ajouter en tant que testeur pour télécharger et tester l'application que vous avez distribuée.
Vous ajouter en tant que testeur à la version
- Sous
firebase_app_id
en haut de votre fichier Fastfile, créez une variable pour contenir les testeurs et incluez votre propre adresse e-mail, ainsi que d'autres adresses e-mail facultatives que vous souhaitez essayer.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- Appliquez la méthode Array#join de Ruby pour transformer le tableau
app_testers
en chaîne séparée par une virgule, comme le paramètretesters
l'attend. Transmettez ensuite le résultat au paramètretesters
defirebase_app_distribution.
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
À ce stade, votre fichier Fastfile devrait se présenter comme suit:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
- Exécutez à nouveau la voie.
$ fastlane distribute
Une fois la file d'attente lancée, les testeurs que vous avez ajoutés recevront un e-mail d'invitation de la part d'App Distribution les informant de la nouvelle version disponible. Dans la console Firebase, vous pouvez désormais voir les testeurs que vous avez ajoutés sous la version de votre application.
Comme vous avez indiqué votre adresse e-mail, vous recevrez un e-mail de Firebase App Distribution vous invitant à tester l'application. Vous êtes désormais le premier testeur ! Passez à la section ci-dessous pour configurer votre appareil de test en tant que testeur.
Enregistrer votre appareil de test
En tant que testeur, vous devez vous connecter à Google sur votre appareil de test pour accéder aux versions d'application que vous avez été invité à tester. Étant donné que votre build de test est une version ad hoc, vous devez également enregistrer votre appareil de test en installant le profil Firebase. Vous pourrez ensuite accéder aux versions qui vous seront proposées depuis l'application Web du testeur de distribution d'applications, à l'aide du clip Web ajouté à l'écran d'accueil de votre appareil.
- Sur votre appareil de test iOS, ouvrez l'e-mail envoyé par Firebase App Distribution, puis appuyez sur le lien Commencer. Veillez à ouvrir le lien dans Safari.
- Vous êtes maintenant dans l'application Web du testeur de distribution d'applications. Sur la page qui s'affiche, connectez-vous avec votre compte Google, puis appuyez sur Accepter l'invitation.
- Vous pouvez désormais voir les versions auxquelles vous avez été invité. Appuyez sur Enregistrer l'appareil sous l'une des versions.
- Lorsque vous y êtes invité, téléchargez le profil Firebase, puis installez-le dans l'application Paramètres.
L'installation du profil autorise Firebase à:
- Enregistrez l'appareil de test en collectant son identifiant unique (UDID).
Firebase envoie un e-mail à tous les propriétaires et éditeurs du projet Firebase, qui inclut l'UDID de l'appareil de test.
- Installez un extrait Web sur l'écran d'accueil de l'appareil de test. Le clip Web ouvre l'application Web du testeur App Distribution, qui vous permet d'installer et d'accéder à toutes vos applications de test.
Dans l'application Web de test App Distribution, votre appareil de test est désormais enregistré pour la version de votre application.
Maintenant que vous avez partagé l'UDID de votre appareil de test avec Firebase, vous pouvez reprendre votre travail en tant que développeur. Dans l'onglet Testeurs du tableau de bord App Distribution, les informations sur vos testeurs s'affichent désormais sous la version de votre application, avec l'état "Accepté":
Dans la section suivante, vous allez ajouter l'UDID de l'appareil au profil de configuration de votre application, puis compiler une version de votre application compatible avec votre appareil de test.
Exporter les UDID de votre appareil de test
En tant que développeur, vous recevrez un e-mail de Firebase contenant l'UDID de l'appareil de test. La distribution d'applications vous permet de collecter facilement plusieurs nouveaux UDID d'appareil à la fois en les exportant directement depuis la console Firebase au format texte brut.
- Pour exporter tous les UDID, ouvrez l'onglet Testeurs et groupes.
- Cliquez sur Exporter les UDID Apple.
Le fichier doit contenir l'UDID de votre appareil de test.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
Vous pouvez également exporter les UDID à partir de la ligne de commande à l'aide de fastlane, comme vous le verrez dans la section suivante.
6. Mettre à jour le profil de configuration de votre application et la recréer
Vous allez maintenant ajouter l'UDID de votre appareil de test au profil de configuration de votre application, recompiler une version de votre application qui fonctionne sur votre appareil et distribuer la nouvelle version.
Ajouter une voie d'exportation des UDID
- Ajoutez une autre variable en haut de votre fichier Fastfile et définissez-la sur un chemin d'accès au fichier où les UDID des appareils de vos testeurs seront téléchargés.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- Configurez une nouvelle voie qui utilise l'action d'exportation d'UDID du plug-in de distribution d'applications pour télécharger les UDID des testeurs, comme vous l'avez fait depuis la console.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- Exécutez le canal suivant pour télécharger les UDID.
$ fastlane download_udids
- Imprimez le fichier téléchargé, qui doit contenir les UDID des appareils de test.
$ cat tester_udids.txt
Ajouter des appareils à la console de développement Apple
- Créez la voie suivante pour ajouter les UDID à votre liste d'appareils dans la console de développement Apple afin de pouvoir les ajouter à votre profil de provisionnement à l'aide de l'action
register_devices
de fastlane :
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- Exécutez ensuite la ligne:
$ fastlane add_new_devices
Les nouveaux appareils devraient alors apparaître dans la liste des appareils de la console de développement.
Ajouter des appareils à votre profil de configuration
- Ajoutez l'argument
force
à l'étape du profil de provisionnement dans votre voiebuild
pour forcer la détection de nouveaux appareils à chaque compilation.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
Réexécuter la voie pour compiler et importer
Vous allez maintenant mettre à jour votre voie distribute
avec les nouvelles voies afin d'ajouter les appareils au profil de provisionnement, de recompiler l'application, puis de la distribuer.
- Appelez les nouvelles voies à partir de
distribute
:
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: "1:123456789:ios:abcd1234",
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
- Exécutez la voie
distribute
:
$ fastlane distribute
À ce stade, votre fichier Fastfile devrait se présenter comme suit:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
Télécharger la version depuis l'appareil de test
Maintenant que votre application inclut les UDID des appareils de test, vous pouvez les installer sur ces appareils.
- Sur votre appareil de test, revenez à l'application Web du testeur de distribution d'applications à l'aide du lien figurant dans l'e-mail ou de l'icône sur l'écran d'accueil de l'appareil.
Lorsque vous accédez à l'application de l'atelier de programmation sur l'UDID, vous pouvez voir que la version est prête à être téléchargée.
- Si vous utilisez un appareil physique, appuyez sur "Télécharger", puis installez et exécutez l'application.
7. Félicitations
Vous avez maintenant configuré App Distribution et fastlane pour automatiser votre processus de test préliminaire. Désormais, lorsque vous souhaitez inviter des testeurs supplémentaires ou ajouter leurs UDID à votre application, il vous suffit d'exécuter une seule commande: fastlane distribute
.
Vous n'avez donc plus besoin de collecter individuellement les UDID des testeurs ni d'accéder à la console de développement Apple pour mettre à jour les listes d'appareils ou les profils de configuration. Vous n'avez même pas besoin d'ouvrir Xcode.
Ce workflow est facile à configurer pour s'exécuter toutes les heures ou tous les jours dans votre environnement d'intégration continue.
Documentation complémentaire
- Découvrez les fonctionnalités de Firebase App Distribution, y compris notre SDK intégré à l'application pour iOS.
- En savoir plus sur Fastlane
- Gérer la signature de code de votre équipe avec
match
- Intégrer fastlane à votre CI