Verteilen Sie Ihre Vorabversionen von 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-Plug-in verwenden, um eine iOS-App an Tester zu verteilen, Testgerät- UDIDs zu sammeln und sie im Bereitstellungsprofil Ihrer App zu registrieren, damit Sie Ad-hoc-Builds schnell in Tester integrieren können ' Hände.

Was Sie lernen werden

  • Anleitung zum Hochladen und Verteilen einer Vorabversion von iOS-Apps (Ad-hoc) an Tester mithilfe von Firebase App Distribution und fastlane .
  • 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 die UDIDs von Testgeräten 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 erstellte Ad-hoc-Vorabversion der iOS-App
  • Ein kostenpflichtiges Apple-Entwicklerkonto
  • Ein physisches iOS-Gerät zum Testen.

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

Sie können dennoch überprüfen, ob die Einrichtung funktioniert hat, indem Sie sich vergewissern, dass die Schaltfläche „Herunterladen“ in der App Distribution Tester-Web-App angezeigt wird.

2. Fangen Sie an

Schnelllane einrichten

App Distribution lässt sich in Fastlane integrieren, damit 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 während der Einrichtung fastlane init im Stammverzeichnis Ihres Projekts aus und wählen Sie „Manuelle Einrichtung“. Sie sehen ein Unterverzeichnis namens fastlane , das Fastfile , Appfile und Pluginfile enthält, die Sie zum Konfigurieren von fastlane verwenden .

3. Erstellen Sie Ihre App mit Fastlane

Erstellen Sie Ihre Anwendung

  1. Legen Sie einige globale Variablen für Fastlane in Ihrem ./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 build_app (auch bekannt als gym ), um Ihre App zu erstellen, indem Sie Folgendes zu Ihrer ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Signieren Sie Ihre App für die 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. In der Regel möchten Sie jedoch die Aktion 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 mithilfe der Aktion get_provisioning_profile (auch als sigh bezeichnet) ein Bereitstellungsprofil für Ihre App ein. Auf diese Weise 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 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 schließlich Ihre App, indem Sie die Lane ausführen.

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

$ fastlane build

Wenn Sie auf Probleme stoßen, lesen Sie bitte den Fastlane- Leitfaden zur Fehlerbehebung .

4. Laden Sie Ihre App auf Firebase hoch

Nachdem Sie Ihre App erstellt haben, können Sie sie in App Distribution 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 dem Projekt Ihre iOS-App hinzu

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

9c26c130a6c42212.png

  1. Überspringen Sie die nächsten Schritte und klicken Sie dann auf Continue to console . Sie werden SDKs später zu Ihrer App hinzufügen.

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

66f79cc8a97fa8e9.png

App-Verteilung aktivieren

  1. Klicken Sie im Abschnitt Release & Monitor auf App Distribution .
  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 mit 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 zum Abbrechen.

Authentifizieren Sie Ihr Firebase-Projekt

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

  1. Führen Sie den folgenden Befehl aus:

$ fastlane run firebase_app_distribution_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.

Kopieren Sie den resultierenden Code aus dem Anmeldebrowser und fügen Sie ihn in die Befehlszeile ein.

  1. Die Anmeldeaktion druckt dann ein Aktualisierungstoken, das das App Distribution-Plug-in verwendet, um sich bei Firebase zu authentifizieren:

dbd61c40c4131158.png

  1. Übergeben Sie das Token, indem Sie die Umgebungsvariable FIREBASE_TOKEN :

$ export FIREBASE_TOKEN= <token>

Verteilen Sie Ihre App

Sie können Ihre App jetzt 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 also die Ruby-Syntax, um Variablen zu definieren.

firebase_app_id = "<your_app_id>"
  1. Fügen Sie eine neue Lane mit dem Namen " distribute " hinzu, die die Build-Lane aufruft, und verteilt dann Ihre App mithilfe der Aktion " firebase_app_distribution ".
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Führen Sie die neue Lane 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, sehen Sie die neue Version Ihrer App.

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, sammelt 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 als Tester zum Release hinzu

  1. Erstellen Sie unter firebase_app_id oben in Ihrem Fastfile eine Variable für Tester und fügen Sie Ihre eigene E-Mail-Adresse sowie andere optionale E-Mail-Adressen ein, 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 app_testers -Array in einen durch Kommas getrennten String umzuwandeln, den der testers -Parameter erwartet. Übergeben Sie dann das Ergebnis 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 wie folgt 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. Fahre die Bahn erneut.

$ fastlane distribute

Sobald Sie die Lane ausgeführt haben, erhalten die von Ihnen hinzugefügten Tester eine Einladungs-E-Mail von App Distribution, in der sie über die neu verfügbare Version informiert werden. In der Firebase-Konsole können Sie jetzt die Tester sehen, die Sie unter der Version 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. Sie sind 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 zugreifen zu können, zu denen 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. Danach können Sie über die App Distribution Tester-Web-App auf verfügbare 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 App „Einstellungen“.

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 App Distribution Tester-Web-App ist Ihr Testgerät jetzt für die Veröffentlichung Ihrer App registriert.

fe93d649dfa25877.png

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

7b9f665a63a384cf.png

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

Exportieren Sie die UDIDs Ihres Testgeräts

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

  1. Um alle UDIDs zu exportieren, öffnen Sie die Registerkarte Tester und 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 Ihrem 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 Lane 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 des Testgeräts enthalten sollte.

$ cat tester_udids.txt

Fügen Sie Geräte zur Apple Developer Console hinzu

  1. Erstellen Sie die folgende Spur, um die UDIDs zu Ihrer Geräteliste in der Apple-Entwicklerkonsole hinzuzufügen, damit Sie sie mit 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 Bahn aus:

$ fastlane add_new_devices

Sie sollten dann die neuen Geräte in der Geräteliste Ihrer Entwicklerkonsole sehen .

Fügen Sie Ihrem Bereitstellungsprofil Geräte hinzu

  1. Fügen Sie das force Argument zum Bereitstellungsprofilschritt in Ihrer build -Lane hinzu, um zu erzwingen, dass es bei jedem Build neue Geräte aufnimmt.
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 Bahnen, um die Geräte zum Bereitstellungsprofil hinzuzufügen, die App neu zu erstellen und sie dann zu verteilen.

  1. Rufen Sie die neuen Bahnen von " distribute " 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 wie folgt 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 UDIDs der Testgeräte 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 App Distribution Tester-Web-App zurück.

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

papa6d03b6ad78746.png

  1. Wenn Sie sich auf einem physischen Gerät befinden, klicken Sie auf Download, 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 jetzt weitere Tester einladen oder ihre UDIDs zu Ihrer App hinzufügen möchten, müssen Sie nur noch 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.

Weiterlesen