Verteilen Sie Ihre Vorab-iOS-Builds schneller mit App Distribution und Fastlane

1. Bevor Sie beginnen

4cddd34bd261cea0.png

In diesem Codelab erfahren Sie, wie Sie Firebase App Distribution und sein Fastlane- Plugin verwenden, um eine iOS-App an Tester zu verteilen, Testgeräte-UDIDs zu sammeln und sie im Bereitstellungsprofil Ihrer App zu registrieren, damit Sie Ad-hoc-Builds schnell in Tester übertragen können ' Hände.

Was Sie lernen werden

  • So laden Sie eine Vorabversion einer iOS-App (Ad-hoc) hoch und verteilen sie mithilfe von Firebase App Distribution und Fastlane an Tester.
  • So melden Sie sich als Tester an und laden die verteilte App auf ein Testgerät herunter.
  • So registrieren Sie Testgeräte schnell, indem Sie Testgeräte-UDIDs mit dem Fastlane- Plugin von App Distribution exportieren.
  • So aktualisieren Sie das Bereitstellungsprofil Ihrer App und laden es zur Verteilung erneut hoch.

Was du brauchen wirst

  • Ein Google-Konto
  • Ein Apple-Computer mit installiertem XCode 11.7+
  • Eine in Xcode integrierte Ad-hoc-Vorabversion für iOS-App
  • Ein kostenpflichtiges Apple Developer-Konto
  • Ein physisches iOS-Gerät zum Testen.

Die iOS-Simulator-App funktioniert für die meisten Codelabs, Simulatoren können jedoch keine Versionen herunterladen.

Sie können weiterhin überprüfen, ob die Einrichtung funktioniert hat, indem Sie überprüfen, ob die Schaltfläche „Herunterladen“ in der Web-App des App Distribution-Testers angezeigt wird.

2. Legen Sie los

Fastlane einrichten

App Distribution lässt sich in Fastlane integrieren, sodass Sie die Verteilung von Vorabversionen Ihrer App automatisieren können. App Distribution lässt sich in Ihre Fastlane- Konfiguration integrieren.

  1. Fastlane installieren und einrichten .
  2. Führen Sie fastlane init während der Einrichtung im Stammverzeichnis Ihres Projekts aus und wählen Sie „Manuelle Einrichtung“. Sie sehen ein Unterverzeichnis namens fastlane , das eine Fastfile , Appfile und Pluginfile enthält, die Sie zum Konfigurieren von fastlane verwenden.

Installieren Sie die Firebase-CLI

Sie müssen außerdem die Firebase-CLI installieren. Wenn Sie macOS oder Linux verwenden, können Sie den folgenden cURL-Befehl ausführen:

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

Wenn Sie Windows verwenden, lesen Sie die Installationsanweisungen , um eine eigenständige Binärdatei zu erhalten oder über npm zu installieren.

Sobald Sie die CLI installiert haben, sollte beim Ausführen von firebase --version eine Version von 12.0.0 oder höher gemeldet werden:

$ firebase --version
12.0.0

3. Erstellen Sie Ihre App mit Fastlane

Erstellen Sie Ihre App

  1. Legen Sie einige globale Variablen für Fastlane in Ihrer ./fastlane/Appfile. Geben Sie die ID Ihrer App und Ihre Apple-ID an:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Erstellen Sie Ihre erste Lane und verwenden Sie die Aktion build_app von fastlane (auch bekannt als gym ), um Ihre App zu erstellen, indem Sie Folgendes zu Ihrer ./fastlane/Fastfile hinzufügen:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Signieren Sie Ihre App zur Verteilung.

Für dieses Codelab verwalten Sie Ihre eigene Zertifizierung und Ihr eigenes Profil mit get_certificates (auch bekannt als cert ), das Signaturzertifikate lokal generiert und alles in Ihrem macOS-Schlüsselbund speichert. Normalerweise möchten Sie jedoch die Fastlane- sync_code_signing action (auch bekannt als match ) verwenden, um die Codesignaturzertifikate und -profile Ihres Teams sicher zu verwalten.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Richten Sie mit der Aktion get_provisioning_profile (auch bekannt als sigh ) ein Bereitstellungsprofil für Ihre App ein. Dadurch können Sie Ihre App mit Testern teilen.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Optional] Wenn Sie Ihre App noch nie zuvor ausgeführt haben, führen Sie den folgenden Befehl aus, um Ihre App in der Apple-Entwicklerkonsole zu erstellen:

$ fastlane produce --skip_itc

  1. Erstellen Sie abschließend Ihre App, indem Sie die Spur ausführen.

Sie werden aufgefordert, Ihre Apple-ID, Ihr Passwort (das in Ihrem Schlüsselbund gespeichert ist) und die Bundle-ID Ihrer App einzugeben.

$ fastlane build

Wenn Sie auf Probleme stoßen, lesen Sie bitte die Fastlane- Anleitung zur Fehlerbehebung .

4. Laden Sie Ihre App auf Firebase hoch

Nachdem Sie Ihre App erstellt haben, können Sie sie in die App-Verteilung hochladen.

Erstellen und richten Sie ein Firebase-Projekt ein

  1. Melden Sie sich bei Firebase an.
  2. Erstellen oder fügen Sie in der Firebase-Konsole ein neues Projekt hinzu und nennen Sie Ihr Projekt dann „UDID Export Codelab“.

Sie müssen Google Analytics für dieses Projekt nicht aktivieren.

  1. Klicken Sie auf Projekt erstellen .

Fügen Sie Ihre iOS-App zum Projekt hinzu

  1. Klicken Sie auf das iOS-Symbol, um eine neue Firebase-iOS-App zu erstellen, und geben Sie die Bundle-ID Ihrer App ein.

9c26c130a6c42212.png

  1. Überspringen Sie die nächsten Schritte und klicken Sie dann auf Weiter zur Konsole . Sie werden Ihrer App später SDKs hinzufügen.

Ihr Projekt und Ihre App sind jetzt auf der Seite „Projektübersicht“ verfügbar.

66f79cc8a97fa8e9.png

Aktivieren Sie die App-Verteilung

  1. Klicken Sie im Abschnitt „Veröffentlichung und Überwachung“ auf App-Verteilung .
  2. Nachdem Sie die Bedingungen akzeptiert haben, klicken Sie auf „Erste Schritte“, um die App-Verteilung für Ihre App zu aktivieren.

460213326c2784ae.png

Richten Sie eine Verteilung in Fastlane ein

  1. Führen Sie den folgenden Befehl im Stammverzeichnis Ihres iOS-Projekts aus, um App Distribution zu Ihrer Fastlane- Konfiguration hinzuzufügen.

Wenn der Befehl Sie zu einer Option auffordert, wählen Sie Option 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Bestätigen Sie, dass das Plugin installiert ist:

$ fastlane

Die Ausgabe sollte fastlane-plugin-firebase_app_distribution in der Liste der installierten Plugins anzeigen.

  1. Nachdem Sie bestätigt haben, dass das Plugin installiert ist, wählen Sie Option 0, um den Vorgang abzubrechen.

Authentifizieren Sie Ihr Firebase-Projekt

Um das Fastlane -Plugin zu verwenden, authentifizieren Sie zunächst Ihr Firebase-Projekt.

  1. Führen Sie den folgenden Befehl aus, um die CLI mit Ihrem Google-Konto zu verbinden:

$ firebase login

  1. Wenn der Befehl einen Authentifizierungslink druckt, öffnen Sie den Link in einem Browser.
  2. Wenn Sie dazu aufgefordert werden, melden Sie sich bei Ihrem Google-Konto an und erteilen Sie die Berechtigung zum Zugriff auf Ihr Firebase-Projekt.

Verteilen Sie Ihre App

Sie sind jetzt bereit, Ihre App zu verteilen.

  1. Definieren Sie oben in Ihrer ./fastlane/Fastfile eine Variable namens firebase_app_id . Ersetzen Sie <your_app_id> durch die Firebase-App-ID für die von Ihnen erstellte App (diese finden Sie auf der Seite mit den Projekteinstellungen ).

Das Fastfile ist in Ruby geschrieben. Verwenden Sie daher die Ruby-Syntax, um Variablen zu definieren.

firebase_app_id = "<your_app_id>"
  1. Fügen Sie eine neue Lane namens distribute hinzu, die die Build-Lane aufruft und dann Ihre App mithilfe der Aktion firebase_app_distribution verteilt.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Führen Sie die neue Spur aus, um Ihre App zu erstellen und eine Verteilung zu erstellen.

$ fastlane distribute

Zu diesem Zeitpunkt sollte Ihr Fastfile wie folgt aussehen:

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

Nachdem Sie die Firebase-Konsole aktualisiert haben, wird die neue Version Ihrer App angezeigt.

c59dc1a94de3bf3c.png

5. Laden Sie Tester ein, Ihre App herunterzuladen

Wenn ein Tester eine Einladung zum Testen eines Ad-hoc-Builds annimmt, wird er um Erlaubnis gebeten, seine UDID weiterzugeben. Wenn sie zustimmen, erfasst App Distribution ihre Geräteinformationen und benachrichtigt Sie per E-Mail. In diesem Abschnitt fügen Sie sich selbst als Tester hinzu, um die von Ihnen verteilte App herunterzuladen und zu testen.

Fügen Sie sich selbst als Tester zur Veröffentlichung hinzu

  1. Erstellen Sie unter firebase_app_id oben in Ihrem Fastfile eine Variable, um Tester aufzunehmen und Ihre eigene E-Mail-Adresse sowie andere optionale E-Mail-Adressen anzugeben, die Sie ausprobieren möchten.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Wenden Sie die Array#join -Methode von Ruby an, um das Array app_testers in eine durch Kommas getrennte Zeichenfolge umzuwandeln, die der Parameter testers erwartet. Übergeben Sie das Ergebnis dann an den testers Parameter von 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

Zu diesem Zeitpunkt sollte Ihr Fastfile so aussehen:

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. Führen Sie die Spur erneut aus.

$ fastlane distribute

Sobald Sie die Lane ausgeführt haben, erhalten die von Ihnen hinzugefügten Tester eine Einladungs-E-Mail von App Distribution, die sie über die neu verfügbare Version informiert. In der Firebase-Konsole können Sie jetzt die Tester sehen, die Sie unter der Veröffentlichung Ihrer App hinzugefügt haben.

2e0fc9603b868af8.png

Da Sie Ihre E-Mail-Adresse angegeben haben, erhalten Sie eine E-Mail von Firebase App Distribution, in der Sie zum Testen der App eingeladen werden. Du bist jetzt der erste Tester! Fahren Sie mit dem folgenden Abschnitt fort, um sich als Tester auf Ihrem Testgerät einzurichten.

Registrieren Sie Ihr Testgerät

Als Tester müssen Sie sich auf Ihrem Testgerät bei Google anmelden, um auf App-Releases zuzugreifen, zu deren Test Sie eingeladen wurden. Da es sich bei Ihrem Test-Build um eine Ad-hoc-Version handelt, müssen Sie auch Ihr Testgerät registrieren, indem Sie das Firebase-Profil installieren. Anschließend können Sie über die App Distribution-Tester-Web-App auf die für Sie verfügbaren Versionen zugreifen, indem Sie den Webclip verwenden, der dem Startbildschirm Ihres Geräts hinzugefügt wird.

  1. Öffnen Sie auf Ihrem iOS-Testgerät die von Firebase App Distribution gesendete E-Mail und tippen Sie auf den Link „Erste Schritte“ . Stellen Sie sicher, dass Sie den Link in Safari öffnen.
  2. Sie befinden sich jetzt in der App Distribution Tester-Web-App. Melden Sie sich auf der angezeigten Seite mit Ihrem Google-Konto an und tippen Sie auf Einladung annehmen.

d833407de251b89f.png

  1. Sie können jetzt die Veröffentlichungen sehen, zu denen Sie eingeladen wurden. Tippen Sie unter einer der Versionen auf Gerät registrieren .

fd141215e54a938d.png

  1. Wenn Sie dazu aufgefordert werden, laden Sie das Firebase-Profil herunter und installieren Sie das Profil dann in der Einstellungen-App.

Durch die Installation des Profils erhält Firebase die Berechtigung:

  • Registrieren Sie das Testgerät, indem Sie die eindeutige Geräte-ID (UDID) des Geräts erfassen.

Firebase sendet allen Eigentümern und Bearbeitern des Firebase-Projekts eine E-Mail mit der UDID des Testgeräts.

  • Installieren Sie einen Webclip auf dem Startbildschirm des Testgeräts. Der Webclip öffnet die App Distribution Tester-Web-App, mit der Sie alle Ihre Test-Apps installieren und darauf zugreifen können.

In der Web-App des App Distribution-Testers ist Ihr Testgerät nun für die Veröffentlichung Ihrer App registriert.

fe93d649dfa25877.png

Nachdem Sie die UDID Ihres Testgeräts nun an Firebase weitergegeben haben, können Sie nun als Entwickler fortfahren. Auf der Registerkarte „Tester“ des App-Verteilungs-Dashboards werden Ihre Testerinformationen jetzt unter der Veröffentlichung Ihrer App mit dem Status „Akzeptiert“ angezeigt:

7b9f665a63a384cf.png

Im nächsten Abschnitt fügen Sie die Geräte-UDID zum Bereitstellungsprofil Ihrer App hinzu und erstellen dann eine Version Ihrer App, die mit Ihrem Testgerät funktioniert.

Exportieren Sie die UDIDs Ihrer Testergeräte

Als Entwickler erhalten Sie von Firebase eine E-Mail mit der UDID des Testgeräts. Als Option erleichtert App Distribution das gleichzeitige Sammeln mehrerer neuer Geräte-UDIDs, indem Sie diese direkt aus der Firebase-Konsole als Rohtextdatei exportieren können.

  1. Um alle UDIDs zu exportieren, öffnen Sie die Registerkarte Tester & Gruppen .

241a9936898a2fc0.png

  1. Klicken Sie auf Apple-UDIDs exportieren .

bcf0c26c522d9b4e.png

Die Datei sollte die UDID Ihres Testgeräts enthalten.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

Die UDIDs können auch über die Befehlszeile mit fastlane exportiert werden, was Sie im nächsten Abschnitt tun werden.

6. Aktualisieren Sie das Bereitstellungsprofil Ihrer App und erstellen Sie es neu

Jetzt fügen Sie die UDID Ihres Testgeräts zum Bereitstellungsprofil Ihrer App hinzu, erstellen eine Version Ihrer App neu, die für Ihr Gerät funktioniert, und verteilen die neue Version.

UDID- Exportspur hinzufügen

  1. Fügen Sie oben in Ihrer Fastfile eine weitere Variable hinzu und legen Sie sie auf einen Dateipfad fest, in den die Geräte-UDIDs Ihrer Tester heruntergeladen werden.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Richten Sie eine neue Spur ein, die die UDID-Exportaktion des App Distribution-Plugins verwendet, um die Tester-UDIDs herunterzuladen, genau wie Sie es von der Konsole aus getan haben.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Führen Sie die folgende Spur aus, um die UDIDs herunterzuladen.

$ fastlane download_udids

  1. Drucken Sie die heruntergeladene Datei aus, die die UDIDs der Testgeräte enthalten sollte.

$ cat tester_udids.txt

Fügen Sie Geräte zur Apple-Entwicklerkonsole hinzu

  1. Erstellen Sie die folgende Lane, um die UDIDs zu Ihrer Geräteliste in der Apple-Entwicklerkonsole hinzuzufügen, damit Sie sie mithilfe der Aktion register_devices von fastlane zu Ihrem Bereitstellungsprofil hinzufügen können:
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Führen Sie dann die Spur aus:

$ fastlane add_new_devices

Anschließend sollten die neuen Geräte in der Geräteliste Ihrer Entwicklerkonsole angezeigt werden.

Fügen Sie Geräte zu Ihrem Bereitstellungsprofil hinzu

  1. Fügen Sie das force Argument zum Bereitstellungsprofilschritt in Ihrer build Lane hinzu, um zu erzwingen, dass bei jedem Build neue Geräte aufgenommen werden.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Führen Sie die Spur erneut aus, um sie zu erstellen und hochzuladen

Jetzt aktualisieren Sie Ihre distribute mit den neuen Spuren, um die Geräte zum Bereitstellungsprofil hinzuzufügen, die App neu zu erstellen und sie dann zu verteilen.

  1. Rufen Sie die neuen Lanes von distribute aus auf:
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. Führen Sie die distribute aus:

$ fastlane distribute

Zu diesem Zeitpunkt sollte Ihr Fastfile so aussehen:

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

Laden Sie die Version vom Testgerät herunter

Da Ihre App nun die Testgeräte-UDIDs enthält, können sie auf den Testgeräten installiert werden.

e275f73d57cc8fb1.png

  1. Kehren Sie auf Ihrem Testgerät über den Link in der E-Mail oder das Symbol auf dem Startbildschirm des Geräts zur Web-App des App Distribution-Testers zurück.

Wenn Sie zur UDID-Codelab-App navigieren, können Sie sehen, dass die Version zum Download bereit ist.

dad6d03b6ad78746.png

  1. Wenn Sie ein physisches Gerät verwenden, klicken Sie auf „Herunterladen“, installieren Sie die App und führen Sie sie aus!

7. Herzlichen Glückwunsch

Sie haben jetzt App Distribution und Fastlane konfiguriert, um Ihren Testprozess vor der Veröffentlichung zu automatisieren. Wenn Sie nun weitere Tester einladen oder deren UDIDs zu Ihrer App hinzufügen möchten, müssen Sie nur einen Befehl ausführen: fastlane distribute .

Sie müssen also nicht mehr einzeln UDIDs von Testern sammeln oder zur Apple-Entwicklerkonsole gehen, um Gerätelisten oder Bereitstellungsprofile zu aktualisieren. Sie müssen XCode nicht einmal öffnen!

Dieser Workflow lässt sich einfach so einrichten, dass er in Ihrer Continuous-Integration-Umgebung stündlich oder täglich ausgeführt wird.

Weiterführende Literatur