Distribuez plus rapidement vos versions préliminaires d'iOS avec App Distribution et fastlane

1. Avant de commencer

4cddd34bd261cea0.png

Dans cet atelier de programmation, vous apprendrez à 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, afin de pouvoir intégrer rapidement des builds ad hoc aux testeurs. ' mains.

Ce que vous apprendrez

  • Comment télécharger et distribuer une application iOS préliminaire (Ad Hoc) aux testeurs à l'aide de Firebase App Distribution et fastlane .
  • Comment s'inscrire en tant que testeur et télécharger l'application distribuée sur un appareil de test.
  • Comment enregistrer rapidement des appareils de test en exportant les UDID des appareils de test avec le plugin fastlane d'App Distribution.
  • Comment mettre à jour le profil de provisionnement de votre application et le télécharger à nouveau pour distribution.

Ce dont vous aurez besoin

  • Un compte Google
  • Une machine Apple avec XCode 11.7+ installé
  • Une application iOS préliminaire Ad Hoc construite dans Xcode
  • Un compte développeur Apple payant
  • Un appareil iOS physique pour les tests.

L' application de simulation iOS fonctionnera pour la plupart des ateliers de programmation, mais les simulateurs ne peuvent pas télécharger de versions.

Vous pouvez toujours vérifier que la configuration a fonctionné en vérifiant que le bouton « Télécharger » apparaît sur l'application Web du testeur App Distribution.

2. Commencez

Mettre en place une voie rapide

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 .

  1. Installez et configurez Fastlane .
  2. Exécutez fastlane init dans le répertoire racine de votre projet lors de l'installation et choisissez « Configuration manuelle ». Vous verrez un sous-répertoire appelé fastlane qui contient un Fastfile , Appfile et Pluginfile , que vous utiliserez pour configurer fastlane .

Installer la CLI Firebase

Vous devrez également installer la Firebase CLI . Si vous utilisez macOS ou Linux, vous pouvez exécuter la commande cURL suivante :

curl -sL https://firebase.tools | bash

Si vous utilisez Windows, lisez les instructions d'installation pour obtenir un binaire autonome ou pour l'installer via npm .

Une fois que vous avez installé la CLI, l'exécution firebase --version devrait signaler une version 12.0.0 ou supérieure :

$ firebase --version
12.0.0

3. Créez votre application avec Fastlane

Créez votre application

  1. Définissez quelques variables globales pour fastlane dans votre ./fastlane/Appfile. Incluez l'identifiant de votre application et votre identifiant Apple :
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Créez votre première voie et utilisez l'action build_app de fastlane (également connue sous le nom de gym ) 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
  1. Signez votre application pour distribution.

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 le tout dans votre trousseau macOS. Cependant, en règle générale, vous souhaiterez utiliser l'action fastlane sync_code_signing action (également connue sous le nom de match ) pour gérer en toute sécurité les certificats et les profils de signature de code de votre équipe.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Configurez un profil de provisionnement pour votre application à l'aide de l'action get_provisioning_profile (également appelée sigh ). Cela vous permet de partager votre application avec des testeurs.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Facultatif] Si vous n'avez jamais exécuté votre application auparavant, exécutez la commande suivante pour créer votre application dans la console de développement Apple :

$ fastlane produce --skip_itc

  1. Enfin, créez votre application en exécutant la voie.

Vous serez invité à saisir votre identifiant Apple, votre mot de passe (qui est stocké dans votre trousseau) et l'identifiant du bundle de votre application.

$ fastlane build

Si vous rencontrez des problèmes, veuillez consulter le guide de dépannage Fastlane .

4. Téléchargez votre application sur Firebase

Maintenant que vous avez créé votre application, vous êtes prêt à la télécharger sur App Distribution.

Créer et configurer un projet Firebase

  1. Connectez-vous à Firebase.
  2. Dans la console Firebase, créez ou ajoutez un nouveau projet, puis nommez votre projet « UDID Export Codelab ».

Vous n'avez pas besoin d'activer Google Analytics pour ce projet.

  1. Cliquez sur Créer un projet .

Ajoutez votre application iOS au projet

  1. Cliquez sur l'icône iOS pour créer une nouvelle application Firebase iOS et saisissez l'ID du bundle de votre application.

9c26c130a6c42212.png

  1. Ignorez les étapes suivantes, puis cliquez sur Continuer vers 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 .

66f79cc8a97fa8e9.png

Activer la distribution d'applications

  1. Sous la section Release & Monitor, cliquez sur App Distribution .
  2. Après avoir accepté les conditions, cliquez sur « Commencer » pour activer App Distribution pour votre application.

460213326c2784ae.png

Mettre en place une distribution dans Fastlane

  1. Exécutez la commande suivante à partir de la racine de votre projet iOS pour ajouter App Distribution à votre configuration Fastlane .

Si la commande vous propose une option, sélectionnez l'option 3 : RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Confirmez que le plugin est installé :

$ fastlane

La sortie devrait afficher fastlane-plugin-firebase_app_distribution dans la liste des plugins installés.

  1. Après avoir confirmé que le plugin est installé, choisissez l'option 0 pour annuler.

Authentifiez votre projet Firebase

Pour utiliser le plugin fastlane , vous devez d'abord authentifier votre projet Firebase.

  1. Exécutez la commande suivante pour connecter la CLI à votre compte Google :

$ firebase login

  1. Lorsque la commande imprime un lien d'authentification, ouvrez le lien dans un navigateur.
  2. Lorsque vous y êtes invité, connectez-vous à votre compte Google et accordez l'autorisation d'accéder à votre projet Firebase.

Distribuez votre application

Vous êtes maintenant prêt à distribuer votre application.

  1. En haut de votre ./fastlane/Fastfile , définissez une variable appelée firebase_app_id . Remplacez <your_app_id> par l'ID d'application Firebase de l'application que vous avez créée (cela se trouve dans la page des paramètres du projet ).

Le Fastfile est écrit en Ruby, utilisez donc la syntaxe Ruby pour définir les variables.

firebase_app_id = "<your_app_id>"
  1. Ajoutez une nouvelle voie appelée distribute qui appelle la voie de construction, puis distribuez votre application à l'aide de l'action firebase_app_distribution .
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Exécutez la nouvelle voie pour créer votre application et créer une distribution.

$ fastlane distribute

À ce stade, votre Fastfile devrait ressembler à ceci :

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

Après avoir actualisé la console Firebase, vous verrez la nouvelle version de votre application.

c59dc1a94de3bf3c.png

5. Invitez les testeurs à télécharger votre application

Lorsqu'un testeur accepte une invitation à tester une version ad hoc, il lui est demandé l'autorisation de partager son UDID. S'ils acceptent, App Distribution collecte les informations sur leur appareil et vous en informe par e-mail. Dans cette section, vous vous ajouterez en tant que testeur pour télécharger et tester l'application que vous avez distribuée.

Ajoutez-vous en tant que testeur à la version

  1. Sous firebase_app_id en haut de votre Fastfile, créez une variable pour accueillir les testeurs et incluez votre propre adresse e-mail, ainsi que d'autres adresses e-mail facultatives que vous aimeriez essayer.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Appliquez la méthode Array#join de Ruby pour transformer le tableau app_testers en une chaîne séparée par des virgules, ce qu'attend le paramètre testers . Ensuite, transmettez le résultat au paramètre testers de firebase_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 Fastfile devrait ressembler à ceci :

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
  1. Parcourez à nouveau la voie.

$ fastlane distribute

Une fois que vous aurez exécuté la voie, les testeurs que vous avez ajoutés recevront un e-mail d'invitation 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.

2e0fc9603b868af8.png

Puisque vous avez inclus 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 ! Continuez la section ci-dessous pour vous configurer en tant que testeur sur votre appareil de test.

Enregistrez votre appareil de test

En tant que testeur, vous devrez vous connecter à Google sur votre appareil de test afin d'accéder aux versions d'applications que vous avez été invités à tester. Étant donné que votre version de test est une version ad hoc, vous devrez également enregistrer votre appareil de test en installant le profil Firebase. Ensuite, les versions qui deviennent disponibles sont accessibles à partir de l'application Web du testeur App Distribution, à l'aide du clip Web ajouté à l'écran d'accueil de votre appareil.

  1. Sur votre appareil de test iOS, ouvrez l'e-mail envoyé depuis Firebase App Distribution et appuyez sur le lien Commencer . Assurez-vous d'ouvrir le lien dans Safari.
  2. Vous êtes maintenant dans l’application Web du testeur App Distribution. Dans la page qui apparaît, connectez-vous avec votre compte Google et appuyez sur Accepter l'invitation.

d833407de251b89f.png

  1. Vous pouvez maintenant voir les sorties auxquelles vous avez été invité. Appuyez sur Enregistrer l'appareil sous l'une des versions.

fd141215e54a938d.png

  1. Lorsque vous y êtes invité, téléchargez le profil Firebase, puis installez le profil dans l'application Paramètres.

L'installation du profil donne à Firebase l'autorisation de :

  • Enregistrez l'appareil de test en collectant l'ID d'appareil unique (UDID) de l'appareil.

Firebase envoie à tous les propriétaires et éditeurs du projet Firebase un e-mail contenant l'UDID de l'appareil de test.

  • Installez un clip 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 du testeur App Distribution, votre appareil de test est désormais enregistré pour la version de votre application.

fe93d649dfa25877.png

Maintenant que vous avez partagé l'UDID de votre appareil de test avec Firebase, vous pouvez reprendre votre rôle de développeur. Dans l' onglet Testeurs du tableau de bord App Distribution , les informations de votre testeur apparaissent désormais sous la version de votre application avec le statut « Accepté » :

7b9f665a63a384cf.png

Dans la section suivante, vous ajouterez l’UDID de l’appareil au profil de provisionnement de votre application, puis créerez une version de votre application qui fonctionne avec votre appareil de test.

Exportez 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. En option, App Distribution facilite la collecte simultanée de plusieurs nouveaux UDID d'appareil en vous permettant de les exporter directement depuis la console Firebase sous forme de fichier texte brut.

  1. Pour exporter tous les UDID, ouvrez l'onglet Testeurs et groupes .

241a9936898a2fc0.png

  1. Cliquez sur Exporter les UDID Apple .

bcf0c26c522d9b4e.png

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

Les UDID peuvent également être exportés à partir de la ligne de commande à l'aide de fastlane , ce que vous ferez dans la section suivante.

6. Mettez à jour le profil de provisionnement de votre application et reconstruisez-le

Vous allez maintenant ajouter l'UDID de votre appareil de test au profil de provisionnement de votre application, reconstruire une version de votre application qui fonctionne pour votre appareil et distribuer la nouvelle version.

Ajouter une voie d'exportation UDID

  1. Ajoutez une autre variable en haut de votre Fastfile et définissez-la sur un chemin de 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"
  1. Configurez une nouvelle voie qui utilise l'action d'exportation UDID du plug-in App Distribution pour télécharger les UDID du testeur, 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
  1. Exécutez la voie suivante pour télécharger les UDID.

$ fastlane download_udids

  1. Imprimez le fichier téléchargé, qui doit contenir les UDID du périphérique de test.

$ cat tester_udids.txt

Ajouter des appareils à la console de développement Apple

  1. Créez la voie suivante pour ajouter les UDID à la liste de vos appareils dans la console de développement Apple, afin de pouvoir les ajouter à votre profil d'approvisionnement à l'aide de l'action register_devices de fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Ensuite, parcourez la voie :

$ fastlane add_new_devices

Vous devriez alors voir les nouveaux appareils dans la liste des appareils de votre console développeur.

Ajouter des appareils à votre profil de provisionnement

  1. Ajoutez l'argument force à l'étape de profil d'approvisionnement dans votre voie build , afin de le forcer à récupérer de nouveaux appareils à chaque fois que vous créez.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Réexécutez la voie pour créer et télécharger

Maintenant, vous allez mettre à jour votre voie distribute avec les nouvelles voies afin d'ajouter les appareils au profil de provisionnement, de reconstruire l'application, puis de la distribuer.

  1. Appelez les nouvelles voies depuis 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
  1. Exécutez la voie distribute :

$ fastlane distribute

À ce stade, votre Fastfile devrait ressembler à ceci :

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échargez la version à partir de l'appareil de test

Maintenant que votre application inclut les UDID des appareils de test, ils peuvent être installés sur les appareils de test.

e275f73d57cc8fb1.png

  1. Sur votre appareil de test, revenez à l'application Web du testeur App Distribution à l'aide du lien contenu dans l'e-mail ou de l'icône sur l'écran d'accueil de l'appareil.

Lorsque vous accédez à l'application UDID Codelab, vous pouvez voir que la version est prête à être téléchargée.

papa6d03b6ad78746.png

  1. Si vous êtes sur 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 tests préliminaires. Désormais, lorsque vous souhaitez inviter des testeurs supplémentaires ou ajouter leurs UDID à votre application, vous n'aurez qu'à exécuter une seule commande : fastlane distribute .

Ainsi, plus besoin de collecter individuellement les UDID des testeurs ou d'accéder à la console de développement Apple pour mettre à jour les listes d'appareils ou les profils d'approvisionnement. Vous n'avez même pas besoin d'ouvrir XCode !

Ce flux de travail est facile à configurer pour s'exécuter toutes les heures ou quotidiennement dans votre environnement d'intégration continue.

Lectures complémentaires