Vorabveröffentlichungen von iOS-Builds durch App-Bereitstellung schneller vertreiben

1. Hinweis

4cddd34bd261cea0.png

In diesem Codelab erfahren Sie, wie Sie Firebase App Distribution und das fastlane-Plug-in verwenden, um eine iOS-App an Tester zu verteilen, UDIDs von Testgeräten zu erfassen und sie im Bereitstellungsprofil Ihrer App zu registrieren. So können Sie Ad-hoc-Builds schnell an Tester weitergeben.

Lerninhalte

  • So laden Sie eine Vorabveröffentlichung einer iOS-App (Ad-hoc) mit Firebase App Distribution und fastlane hoch und verteilen sie an Tester.
  • Hier erfahren Sie, wie Sie sich als Tester registrieren und die verteilte App auf einem Testgerät herunterladen.
  • Testgeräte schnell registrieren, indem Sie UDIDs von Testgeräten mit dem fastlane-Plug-in von App Distribution exportieren.
  • So aktualisieren Sie das Bereitstellungsprofil Ihrer App und laden es für die Verteilung noch einmal hoch.

Voraussetzungen

  • Ein Google-Konto
  • Ein Apple-Computer mit XCode 11.7 oder höher
  • Eine Ad-hoc-Vorabversion einer iOS-App, die in Xcode erstellt wurde
  • Ein kostenpflichtiges Apple-Entwicklerkonto
  • Ein physisches iOS-Gerät zum Testen.

Die iOS-Simulator-App funktioniert für den Großteil des Codelabs, aber mit Simulatoren können keine Releases heruntergeladen werden.

Sie können trotzdem prüfen, ob die Einrichtung funktioniert hat, indem Sie nachsehen, ob die Schaltfläche „Herunterladen“ in der App Distribution-Tester-Web-App angezeigt wird.

2. Jetzt starten

fastlane einrichten

Die App-Bereitstellung lässt sich in fastlane einbinden, sodass Sie die Bereitstellung von Vorab-Releases Ihrer App automatisieren können. Die App-Bereitstellung wird in Ihre fastlane-Konfiguration eingebunden.

  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“ aus. Sie sehen ein Unterverzeichnis namens fastlane, das die Dateien Fastfile, Appfile und Pluginfile enthält. Diese verwenden Sie, um fastlane zu konfigurieren.

Firebase CLI installieren

Sie müssen auch 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, finden Sie hier eine Installationsanleitung, um ein eigenständiges Binärprogramm zu erhalten oder die Installation über npm vorzunehmen.

Nach der Installation der CLI sollte bei der Ausführung von firebase --version eine Version von 12.0.0 oder höher angezeigt werden:

$ firebase --version
12.0.0

3. App mit fastlane erstellen

App entwickeln

  1. Legen Sie in Ihrer ./fastlane/Appfile. einige globale Variablen für fastlane fest. 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 Ihren ersten Lane und verwenden Sie die fastlane -Aktion build_app (auch als gym bezeichnet), um Ihre App zu erstellen. Fügen Sie dazu Folgendes zu Ihrem ./fastlane/Fastfile hinzu:
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Signieren Sie Ihre App für die Bereitstellung.

In diesem Codelab verwalten Sie Ihre eigene Zertifizierung und Ihr eigenes Profil mit get_certificates (auch bekannt als cert). Damit werden Signaturzertifikate lokal generiert und alles in Ihrem macOS-Schlüsselbund gespeichert. In der Regel sollten Sie jedoch fastlane sync_code_signing action (auch als match bezeichnet) 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 als sigh bezeichnet) ein Bereitstellungsprofil für Ihre App ein. So 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 sie in der Apple-Entwicklerkonsole zu erstellen:

$ fastlane produce --skip_itc

  1. Erstellen Sie 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

Falls Probleme auftreten, lesen Sie den Leitfaden zur Fehlerbehebung für fastlane.

4. App in Firebase hochladen

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

Neues Firebase-Projekt erstellen

  1. Melden Sie sich mit Ihrem Google-Konto in der Firebase Console an.
  2. Klicken Sie auf die Schaltfläche zum Erstellen eines neuen Projekts und geben Sie einen Projektnamen ein (z. B. UDID Export Codelab).
  3. Klicken Sie auf Weiter.
  4. Lesen und akzeptieren Sie bei Aufforderung die Firebase-Nutzungsbedingungen und klicken Sie dann auf Weiter.
  5. (Optional) Aktivieren Sie die KI-Unterstützung in der Firebase Console (als „Gemini in Firebase“ bezeichnet).
  6. Für dieses Codelab benötigen Sie kein Google Analytics. Deaktivieren Sie daher die Google Analytics-Option.
  7. Klicken Sie auf Projekt erstellen, warten Sie, bis Ihr Projekt bereitgestellt wurde, und klicken Sie dann auf Weiter.

iOS-App in das Projekt einbinden

  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 fügen Ihrer App später SDKs hinzu.

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

66f79cc8a97fa8e9.png

App-Bereitstellung aktivieren

  1. Klicken Sie im Bereich „Release & Monitor“ (Release und Monitoring) auf App-Bereitstellung.
  2. Nachdem Sie die Bedingungen akzeptiert haben, klicken Sie auf „Jetzt starten“, um die App-Bereitstellung für Ihre App zu aktivieren.

460213326c2784ae.png

Verteilung in fastlane einrichten

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

Wenn Sie vom Befehl aufgefordert werden, eine Option auszuwählen, wählen Sie Option 3: RubyGems.org aus:

$ fastlane add_plugin firebase_app_distribution

  1. Prüfen Sie, ob das Plug-in installiert ist:

$ fastlane

In der Ausgabe sollte fastlane-plugin-firebase_app_distribution in der Liste der installierten Plug-ins angezeigt werden.

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

Firebase-Projekt authentifizieren

Um das fastlane-Plug‑in zu verwenden, müssen Sie zuerst Ihr Firebase-Projekt authentifizieren.

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

$ firebase login

  1. Wenn der Befehl einen Authentifizierungslink ausgibt, öffnen Sie den Link in einem Browser.
  2. Melden Sie sich bei Aufforderung in Ihrem Google-Konto an und erteilen Sie die Berechtigung für den Zugriff auf Ihr Firebase-Projekt.

App vertreiben

Jetzt können Sie Ihre App verteilen.

  1. Definieren Sie oben in Ihrem ./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. Sie finden sie auf der Seite Projekteinstellungen.

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 mit dem Namen distribute hinzu, die die Build-Lane aufruft und Ihre App dann mit 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 Lane aus, um Ihre App zu erstellen und eine Verteilung zu erstellen.

$ fastlane distribute

Ihr Fastfile sollte jetzt so 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 Console aktualisiert haben, wird das neue Release für Ihre App angezeigt.

c59dc1a94de3bf3c.png

5. Tester zum Herunterladen Ihrer App einladen

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

Sich selbst als Tester für die Version hinzufügen

  1. Erstellen Sie oben in Ihrer Fastfile unter firebase_app_id eine Variable für Tester und fügen Sie Ihre eigene E‑Mail-Adresse sowie andere optionale E‑Mail-Adressen hinzu, die Sie testen möchten.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Wenden Sie die Ruby-Methode Array#join an, um das app_testers-Array in einen durch Kommas getrennten String umzuwandeln, der für den Parameter testers erforderlich ist. Übergeben Sie das Ergebnis dann an den Parameter testers 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

Ihr Fastfile sollte jetzt 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 Lane noch einmal aus.

$ fastlane distribute

Sobald Sie den Lane ausführen, erhalten die hinzugefügten Tester eine Einladungs-E-Mail von App Distribution, in der sie über die neu verfügbare Version informiert werden. In der Firebase Console können Sie jetzt die Tester sehen, die Sie dem Release Ihrer App hinzugefügt haben.

2e0fc9603b868af8.png

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

Testgerät registrieren

Als Tester müssen Sie sich auf Ihrem Testgerät in 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 Ihr Testgerät auch registrieren, indem Sie das Firebase-Profil installieren. Anschließend können Sie über den Webclip, der dem Startbildschirm Ihres Geräts hinzugefügt wird, in der App Distribution Tester-Web-App auf Releases zugreifen, die für Sie verfügbar werden.

  1. Öffnen Sie auf Ihrem iOS-Testgerät die E‑Mail, die von Firebase App Distribution gesendet wurde, und tippen Sie auf den Link Erste Schritte. Öffnen Sie den Link in Safari.
  2. Sie befinden sich jetzt in der Web-App für App-Verteilungstests. 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 Releases sehen, zu denen Sie eingeladen wurden. Tippen Sie unter einer der Versionen auf Gerät registrieren.

fd141215e54a938d.png

  1. Laden Sie das Firebase-Profil herunter, wenn Sie dazu aufgefordert werden, und installieren Sie es dann in den Einstellungen.

Durch die Installation des Profils erhält Firebase die Berechtigung für Folgendes:

  • Registrieren Sie das Testgerät, indem Sie die UDID (Unique Device ID) des Geräts erfassen.

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

  • Installieren Sie einen Webclip auf dem Startbildschirm des Testgeräts. Durch den Webclip wird die App Distribution Tester-Web-App geöffnet, über die Sie alle Ihre Test-Apps installieren und auf sie zugreifen können.

Ihr Testgerät ist jetzt in der App-Bereitstellung-Tester-Web-App für die Version Ihrer App registriert.

fe93d649dfa25877.png

Nachdem Sie die UDID Ihres Testgeräts für Firebase freigegeben haben, können Sie jetzt als Entwickler fortfahren. Auf dem Tab Tester des App-Verteilungs-Dashboards werden Ihre Testerinformationen jetzt unter dem Release Ihrer App mit dem Status „Akzeptiert“ angezeigt:

7b9f665a63a384cf.png

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

UDIDs von Testergeräten exportieren

Als Entwickler erhalten Sie eine E-Mail von Firebase mit der UDID des Testgeräts. Mit App Distribution können Sie mehrere neue Geräte-UDIDs gleichzeitig erfassen, indem Sie sie direkt aus der Firebase Console als Rohtextdatei exportieren.

  1. Wenn Sie alle UDIDs exportieren möchten, öffnen Sie den Tab 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 Geräte-IDs können auch über die Befehlszeile mit fastlane exportiert werden. Das wird im nächsten Abschnitt beschrieben.

6. Bereitstellungsprofil Ihrer App aktualisieren und App neu erstellen

Fügen Sie nun die UDID Ihres Testgeräts dem Nutzerverwaltungsprofil Ihrer App hinzu, erstellen Sie eine Version Ihrer App, die auf Ihrem Gerät funktioniert, und verteilen Sie die neue Version.

UDID-Export-Lane 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 UDIDs der Geräte 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, in der die UDIDs der Tester mit der UDID-Exportaktion des App Distribution-Plug-ins heruntergeladen werden. Das funktioniert genauso wie in der Console.
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 Lane aus, um die UDIDs herunterzuladen.

$ fastlane download_udids

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

$ cat tester_udids.txt

Geräte zur Apple Developer Console hinzufügen

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

$ fastlane add_new_devices

Die neuen Geräte sollten dann in der Geräteliste Ihrer Entwicklerkonsole angezeigt werden.

Geräte zum Bereitstellungsprofil hinzufügen

  1. Fügen Sie das Argument force dem Schritt für das Bereitstellungsprofil in Ihrem build-Lane hinzu, damit bei jedem Build neue Geräte berücksichtigt werden.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Lane zum Erstellen und Hochladen noch einmal ausführen

Aktualisieren Sie nun die distribute-Lane mit den neuen Lanes, um die Geräte dem Bereitstellungsprofil hinzuzufügen, die App neu zu erstellen und sie dann zu verteilen.

  1. Rufen Sie die neuen Bereiche über 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-Lane aus:

$ fastlane distribute

Ihr Fastfile sollte jetzt 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

Release auf das Testgerät herunterladen

Da Ihre App jetzt die UDIDs der Testgeräte enthält, kann sie auf den Testgeräten installiert werden.

e275f73d57cc8fb1.png

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

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

dad6d03b6ad78746.png

  1. Wenn Sie ein physisches Gerät verwenden, drücken Sie auf „Herunterladen“, dann auf „Installieren“ und führen Sie die App aus.

7. Glückwunsch

Sie haben App Distribution und fastlane jetzt so konfiguriert, dass Ihr Vorabveröffentlichungstestprozess automatisiert wird. Wenn Sie jetzt zusätzliche 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 erfassen oder die Apple Developer Console aufrufen, um Gerätelisten oder Nutzerverwaltungsprofile zu aktualisieren. Sie müssen Xcode nicht einmal öffnen.

Dieser Workflow lässt sich einfach einrichten und stündlich oder täglich in Ihrer Continuous-Integration-Umgebung ausführen.

Weitere Informationen