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 d'approvisionnement de votre application, afin que vous puissiez obtenir rapidement des versions Ad Hoc dans les testeurs. ' mains.

Ce que vous apprendrez

  • Comment importer et distribuer une version préliminaire de l'application iOS (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 plug-in fastlane d'App Distribution.
  • Comment mettre à jour le profil d'approvisionnement de votre application et le recharger pour distribution.

Ce dont vous aurez besoin

  • Un compte Google
  • Une machine Apple avec XCode 11.7+ installé
  • Une application iOS de pré-version Ad Hoc intégrée à Xcode
  • Un compte développeur Apple payant
  • Un appareil iOS physique pour les tests.

L' application de simulation iOS fonctionnera pour la plupart du laboratoire 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" apparaît sur l'application Web du testeur App Distribution.

2. Commencez

Configurer la 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 l'interface de ligne de commande Firebase

Vous devrez é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, lisez les instructions d'installation pour obtenir un binaire autonome ou pour installer via npm .

Une fois que vous avez installé la CLI, l'exécution firebase --version doit indiquer 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 des variables globales pour fastlane dans votre ./fastlane/Appfile. Incluez l'ID 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 gérerez votre propre certification et votre profil à l'aide get_certificates (également connu sous le nom de cert ), qui génère des certificats de signature localement et stocke tout dans votre trousseau macOS. Cependant, vous souhaiterez généralement 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 d'approvisionnement 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 développeur Apple :

$ fastlane produce --skip_itc

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

Vous serez invité à entrer votre identifiant Apple, votre mot de passe (qui est stocké dans votre trousseau) et l'identifiant 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 iOS Firebase, puis saisissez l'ID de bundle de votre application.

9c26c130a6c42212.png

  1. Ignorez les quelques é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 la distribution d'applications pour votre application.

460213326c2784ae.png

Mettre en place une distribution en 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 Option 3 : RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Confirmez que le plug-in est installé :

$ fastlane

La sortie doit 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 de l'application Firebase pour l'application que vous avez créée (cela peut être trouvé 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 distribue 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 des 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 de 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 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",
]
  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 que le paramètre testers attend. 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. Exécutez à nouveau la voie.

$ fastlane distribute

Une fois que vous avez 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 maintenant 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'application que vous avez été invité à 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 pour vous 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é par 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 s'affiche, connectez-vous avec votre compte Google et appuyez sur Accepter l'invitation.

d833407de251b89f.png

  1. Vous pouvez maintenant voir les versions 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 autorise Firebase à :

  • 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 de test 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 maintenant reprendre en tant que développeur. Dans l' onglet Testeurs du tableau de bord App Distribution , vos informations de testeur apparaissent désormais sous la version de votre application avec le statut "Accepté" :

7b9f665a63a384cf.png

Dans la section suivante, vous allez ajouter l'UDID de l'appareil au profil d'approvisionnement de votre application, puis créer une version de votre application qui fonctionne avec votre appareil de test.

Exportez les UDID de votre appareil testeur

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'appareils 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 depuis la ligne de commande à l'aide de fastlane , ce que vous ferez dans la section suivante.

6. Mettez à jour le profil d'approvisionnement de votre application et reconstruisez-le

Vous allez maintenant ajouter l'UDID de votre appareil de test au profil d'approvisionnement 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 de l'appareil 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 de l'appareil de test.

$ cat tester_udids.txt

Ajouter des appareils à la console développeur Apple

  1. Créez la voie suivante pour ajouter les UDID à votre liste d'appareils dans la console développeur 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, exécutez 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 du profil d'approvisionnement dans votre voie build , afin de le forcer à récupérer de nouveaux appareils à chaque fois que vous construisez.
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 d'approvisionnement, reconstruire l'application, puis la distribuer.

  1. Appelez les nouvelles voies 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
  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écharger 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 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 lancez l'application !

7. Félicitations

Vous avez maintenant configuré App Distribution et Fastlane pour automatiser votre processus de test de pré-version. 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 des développeurs Apple pour mettre à jour les listes d'appareils ou les profils de provisionnement. 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 tous les jours dans votre environnement d'intégration continue.

Lectures complémentaires