Benachrichtigen Sie Tester über Ihre neuen App-Releases mit dem Firebase App Distribution iOS SDK – Codelab

1. Übersicht

Willkommen beim Integrieren des Firebase App Distribution SDK in Ihr iOS-App-Codelab. In diesem Codelab fügen Sie das App Distribution SDK zu Ihrer App hinzu, um Ihren Testern In-App-Benachrichtigungen anzuzeigen, wenn neue Builds zum Herunterladen verfügbar sind. Sie erfahren, wie Sie sowohl eine Basiskonfiguration als auch eine benutzerdefinierte Konfiguration verwenden, um Ihre Tester für den Empfang von Updates anzumelden. Anschließend übertragen Sie eine neue Version an App Distribution und lösen direkt in der App eine neue Build-Benachrichtigung aus.

Was Sie lernen werden

  • So verwenden Sie App Distribution, um eine Vorabversion einer App an Live-Tester zu verteilen
  • So integrieren Sie das App Distribution iOS SDK in Ihre App
  • So benachrichtigen Sie einen Tester, wenn ein neuer Vorabversions-Build zur Installation bereitsteht
  • So passen Sie das SDK an Ihre individuellen Testanforderungen an

Was du brauchen wirst

  • Xcode 12 (oder höher)
  • CocoaPods 1.9.1 (oder höher)
  • Ein Apple-Entwicklerkonto für die Ad-hoc-Verteilung
  • Ein physisches iOS-Gerät zum Testen. (Die iOS-Simulator-App funktioniert für die meisten Codelabs, Simulatoren können jedoch keine Versionen herunterladen.)

Wie werden Sie dieses Tutorial nutzen?

Lesen Sie es nur durch Lesen Sie es und absolvieren Sie die Übungen

Wie würden Sie Ihre Erfahrungen mit der Erstellung von iOS-Apps bewerten?

Anfänger Dazwischenliegend Kompetent

2. Erstellen Sie ein Firebase-Konsolenprojekt

Neues Firebase-Projekt hinzufügen

  1. Melden Sie sich bei Firebase an.
  2. Klicken Sie in der Firebase-Konsole auf Projekt hinzufügen und nennen Sie Ihr Projekt dann „Firebase Codelab“.

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

  1. Klicken Sie auf Projekt erstellen .

App zu Firebase hinzufügen

Befolgen Sie die Dokumentation , um Ihre App bei Firebase zu registrieren. Verwenden Sie „com.google.firebase.codelab.AppDistribution.<Ihr_Name>“ als iOS-Bundle-ID.

Wenn Sie dazu aufgefordert werden, laden Sie die Datei GoogleService-Info.plist Ihres Projekts herunter. Sie werden dies später benötigen.

3. Holen Sie sich das Beispielprojekt

Laden Sie den Code herunter

Beginnen Sie mit dem Klonen des Beispielprojekts.

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

Wenn Sie Git nicht installiert haben, können Sie das Beispielprojekt auch von der GitHub-Seite herunterladen oder auf diesen Link klicken.

Laden Sie Abhängigkeiten herunter und öffnen Sie das Projekt in Xcode

  1. Öffnen Sie die Poddatei im selben Verzeichnis
cd firebase-appdistribution-ios/start
Open Podfile
  1. Fügen Sie Ihrer Poddatei die folgende Zeile hinzu:

Poddatei

pod 'Firebase/AppDistribution'

Führen Sie pod update im Projektverzeichnis aus und öffnen Sie das Projekt in Xcode.

pod install --repo-update
xed .

Aktualisieren Sie die Bundle-ID, sodass sie mit Ihrer Firebase-App übereinstimmt

Doppelklicken Sie im linken Menü auf AppDistributionExample. Suchen Sie dann die Registerkarte „Allgemein“ und ändern Sie die Bundle-ID so, dass sie mit der Bundle-ID Ihrer Firebase-App übereinstimmt, die Sie in den Projekteinstellungen finden. Dies sollte „com.google.firebase.codelab.AppDistribution.<Ihr_Name>“ lauten.

Fügen Sie Firebase zu Ihrer App hinzu

Suchen Sie die zuvor heruntergeladene Datei GoogleService-Info.plist in Ihrem Dateisystem und ziehen Sie sie in das Stammverzeichnis des Xcode-Projekts. Sie können diese Datei auch jederzeit von der Einstellungsseite Ihres Projekts herunterladen.

3cf9290805e7fdab.png

Importieren Sie in Ihrer AppDistributionExample/AppDelegate.swift Datei Firebase oben in der Datei

AppDistributionExample/AppDelegate.swift

import Firebase

Und fügen Sie in der Methode didFinishLaunchingWithOptions einen Aufruf zum Konfigurieren von Firebase hinzu.

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Richten Sie mit dem App Distribution SDK In-App-Benachrichtigungen zu neuen Builds ein

In diesem Schritt fügen Sie das Firebase App Distribution SDK zu Ihrer App hinzu und zeigen Ihren Testern In-App-Benachrichtigungen an, wenn neue Builds Ihrer App zur Installation verfügbar sind. Stellen Sie dazu sicher, dass Sie die Firebase App Testers API für Ihr „Firebase Codelab“-Projekt aktiviert haben (in der Google Cloud Console). Sie müssen sich mit demselben Konto anmelden und im Dropdown-Menü oben das richtige Projekt auswählen.

Konfigurieren Sie In-App-Benachrichtigungen

Das App Distribution SDK bietet zwei Möglichkeiten zum Einrichten von In-App-Build-Benachrichtigungen für Ihre Tester: eine grundlegende Benachrichtigungskonfiguration, die einen vorgefertigten Anmeldedialog zur Anzeige für Tester enthält, und eine erweiterte Benachrichtigungskonfiguration, die Ihnen dies ermöglicht Passen Sie Ihre eigene Benutzeroberfläche (UI) an.

Wir beginnen mit der grundlegenden Alarmkonfiguration. Sie können checkForUpdate verwenden, um Testern, die noch keine Warnungen aktiviert haben, einen vorgefertigten Dialog zum Aktivieren von Warnungen anzuzeigen und dann zu prüfen, ob ein neuer Build verfügbar ist. Tester aktivieren Warnungen, indem sie sich bei einem Konto anmelden, das Zugriff auf die App in App Distribution hat. Beim Aufruf führt die Methode die folgende Sequenz aus:

  1. Überprüft, ob ein Tester Warnungen aktiviert hat. Wenn nicht, wird ein vorgefertigter Dialog angezeigt, der sie auffordert, sich mit ihrem Google-Konto bei App Distribution anzumelden.

Das Aktivieren von Warnungen ist ein einmaliger Vorgang auf dem Testgerät und bleibt über alle Updates Ihrer App hinweg bestehen. Warnungen bleiben auf dem Testgerät aktiviert, bis entweder die App deinstalliert wird oder bis die signOutTester Methode aufgerufen wird. Weitere Informationen finden Sie in der Referenzdokumentation der Methode ( Swift oder Objective-C ).

  1. Sucht nach neu verfügbaren Builds, die der Tester installieren kann. Gibt ein Release- Objekt oder einen Fehler zurück.

Sie können checkForUpdate jederzeit in Ihre App einbinden. Beispielsweise können Sie Ihre Tester auffordern, beim Start neu verfügbare Builds zu installieren, indem Sie checkForUpdate in viewDidAppear des UIViewControllers einschließen.

Importieren Sie in Ihrer AppDistributionViewController.swift Datei Firebase oben in der Datei

AppDistributionViewController.swift

import Firebase

Öffnen Sie AppDistributionExample/AppDistributionViewController.swift und kopieren Sie Zeilen wie folgt in die Methode viewDidAppear :

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

Jetzt implementieren wir die Methode checkForUpdate().

AppDistributionViewController.swift

  private func checkForUpdate() {
    AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
      var uiAlert: UIAlertController

      if error != nil {
        uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
      } else if release == nil {
        uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
        uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
      } else {
        guard let release = release else { return }

        let title = "New Version Available"
        let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
        uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)

        uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
          _ in
          UIApplication.shared.open(release.downloadURL)
        })
        uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
          _ in
        })
      }
      self.present(uiAlert, animated: true, completion: nil)
    })
  }

5. Erstellen Sie Ihre App und laden Sie Tester ein, sie herunterzuladen

In diesem Schritt erstellen Sie Ihre App und testen Ihre Implementierung, indem Sie den Build über die Firebase-Konsole an Tester verteilen .

Erstellen Sie Ihre App

Wenn Sie bereit sind, eine Vorabversion Ihrer App an Tester zu verteilen, wählen Sie „Jedes iOS-Gerät (arm64)“ als Build-Ziel und Produkt->Archive aus. Sobald das Archiv erstellt ist, erstellen Sie eine signierte Distribution mit dem Development-Distributionsprofil.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Wenn der Build abgeschlossen ist, werden eine IPA-Datei und einige Protokolldateien in dem von Ihnen angegebenen Ordner gespeichert. In den folgenden Schritten verteilen Sie die IPA-Datei an Ihre Tester.

Wenn beim Erstellen Ihrer App Probleme auftreten, finden Sie in den Codesigning-Dokumenten von Apple Schritte zur Fehlerbehebung.

Verteilen Sie Ihre App an Tester

Um Ihre App an Tester zu verteilen, laden Sie die IPA-Datei über die Firebase-Konsole hoch:

  1. Öffnen Sie die Seite „App-Verteilung“ der Firebase-Konsole. Wählen Sie Ihr Firebase-Projekt aus, wenn Sie dazu aufgefordert werden.
  2. Klicken Sie auf „Erste Schritte“.

e4671bd304ecfe47.png

  1. Wählen Sie auf der Seite „Releases“ aus dem Dropdown-Menü die App aus, die Sie verteilen möchten.

8a3da2939b9746f4.png

  1. Ziehen Sie die IPA-Datei Ihrer App auf die Konsole, um sie hochzuladen.
  2. Wenn der Upload abgeschlossen ist, geben Sie die Testergruppen und einzelnen Tester an, die den Build erhalten sollen. (Fügen Sie Ihre E-Mail-Adresse hinzu, um die Einladung zu erhalten.) Fügen Sie dann Versionshinweise für den Build hinzu. Weitere Informationen zum Erstellen von Testergruppen finden Sie unter Tester verwalten .

de63e3c3c64f909e.png

  1. Klicken Sie auf „Verteilen“, um den Build den Testern zur Verfügung zu stellen.

b6e75dc216fc3731.png

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

In der Firebase-Konsole können Sie jetzt die Tester sehen, die Sie unter der Veröffentlichung Ihrer App hinzugefügt haben.

eb61c6be96ff3a11.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

Sie müssen zunächst Ihr Testgerät registrieren, um eine Ad-hoc-Version herunterzuladen und zu testen.

  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. Melden Sie sich in der angezeigten Firebase App Distribution- Tester-Webanwendung mit Ihrem Google-Konto an und tippen Sie auf Einladung annehmen.

4d1af345ef944620.png

Jetzt sehen Sie die Veröffentlichung, zu der Sie eingeladen wurden.

  1. Tippen Sie auf Gerät registrieren , um Ihre UDID mit Firebase zu teilen, damit Sie das Bereitstellungsprofil Ihrer App später aktualisieren können.

fd141215e54a938d.png

  1. Befolgen Sie die Anweisungen und gehen Sie zu den Einstellungen, um das Profil herunterzuladen und Ihre UDID zu teilen.

Wenn Sie nun zur App-Verteilung zurückkehren, wird die Version nun als „Gerät registriert“ markiert:

fe93d649dfa25877.png

Die UDID des Testers wurde nun mit dem Entwickler geteilt. Es liegt nun am Entwickler, dem Tester eine neue Version der App zu erstellen.

Testerinformationen in der Konsole anzeigen

Zurück in der Entwickleransicht in der Firebase-Konsole wird der Tester unter der Veröffentlichung als „Akzeptiert“ angezeigt:

1bef6f182c1c58f9.png

Sie erhalten dann auch als Entwickler eine E-Mail, wenn das von ihm verwendete Gerät nicht bereits im Bereitstellungsprofil enthalten ist. Dadurch werden Sie über die neue UDID benachrichtigt, die Sie hinzufügen müssen. Sie haben auch die Möglichkeit, alle UDIDs als Textdatei zu exportieren.

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

2745d49a6abc47fe.png

  1. Klicken Sie auf „Apple-UDIDs exportieren“.

cb45477f8cc436ba.png

Die Datei sollte die UDID Ihres Testgeräts enthalten.

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

Wenn Sie eine dieser E-Mails erhalten, aktualisieren Sie Ihr Bereitstellungsprofil mit der UDID und verteilen Sie einen neuen Build an Ihre Tester, indem Sie die folgenden Schritte ausführen:

  1. Fügen Sie die Geräte Ihrem Apple-Entwicklerportal hinzu.
  • Option 1: Importieren Sie die Geräte-UDIDs als CSV-Datei. Wählen Sie auf der Registerkarte „Tester und Gruppen“ des App-Verteilungs-Dashboards „Alle Tester“ aus und klicken Sie dann auf „Apple-UDIDs exportieren“, um eine CSV-Datei herunterzuladen. Als nächstes importieren Sie die Datei mit der Option „Mehrere Geräte registrieren“ in Ihr Apple-Entwicklerkonto . Weitere Informationen finden Sie in der Dokumentation von Apple . Beachten Sie, dass Sie mit Ihrem Apple-Entwicklerkonto möglicherweise nur eine begrenzte Anzahl von Geräten pro Jahr importieren können.
  • Option 2: Erfassen und geben Sie die UDIDs per E-Mail ein. Registrieren Sie auf der Seite „Geräte hinzufügen“ des Apple-Entwicklerportals die neue UDID, die in der E-Mail angegeben ist, die Sie erhalten haben.

ffb74294e68ee1c8.png

  1. Fügen Sie die registrierten Geräte Ihrem Bereitstellungsprofil hinzu.
  2. Laden Sie das Bereitstellungsprofil herunter und erstellen Sie damit Ihre App neu. Wenn Sie nur die registrierten Geräte neu erstellen, aktualisieren Sie nicht die Build-Nummer oder Version.
  3. Verteilen Sie Ihre App über die Firebase-Konsole oder CLI neu. Wenn Sie bereits einen Build mit derselben Build-Nummer und Version verteilt haben, erhalten nur Benutzer neu registrierter Geräte Benachrichtigungs-E-Mails.

Laden Sie die Version vom Testgerät herunter

Jetzt verfügt die Version über die UDID des Testgeräts, sodass das Testgerät die App herunterladen und installieren kann. App Distribution sendet eine E-Mail an Tester, wenn ihre UDID zu einer neuen Version hinzugefügt wird.

a4049260bae2850b.png

  1. Kehren Sie auf dem 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!
  2. Wenn die App startet, werden Sie aufgefordert, neue Build-Benachrichtigungen zu aktivieren. Wählen Sie „Einschalten“

6e3540a2900734e6.png

  1. Anschließend werden Sie aufgefordert, sich anzumelden. Klicken Sie auf „Weiter“.

82d90d7935bfaea0.png

  1. Melden Sie sich mit Ihrem Testerkonto an.

13bee1d03fa94ebf.png

  1. Sie werden zur App zurückgeleitet. Sie müssen sich beim nächsten Ausführen der App nicht anmelden oder Benachrichtigungen akzeptieren.

815d6757eb5f6327.png

Verteilen Sie ein Update an Ihre Tester

  1. Aktualisieren Sie Ihre Build-Nummer auf „2“.

861aa63ebbc6ec54.png

  1. Wählen Sie „Jedes iOS-Gerät (arm64)“ als Build-Ziel und Produkt->Archiv. Sobald das Archiv generiert ist, erstellen Sie eine signierte Distribution mit dem Distributionsprofil „Development“.
  2. Wenn der Build abgeschlossen ist, werden eine IPA-Datei und einige Protokolldateien in dem von Ihnen angegebenen Ordner gespeichert. Laden Sie dieses neue IPA in Ihre Firebase-Konsole hoch, fügen Sie Ihre E-Mail-Adresse erneut als Tester hinzu und verteilen Sie es.

b6e75dc216fc3731.png

Testen Sie Build-Benachrichtigungen

  1. Stellen Sie sicher, dass Sie die App geschlossen haben, falls sie geöffnet war. Starten Sie die App neu.
  2. Beim Neustart der App sollten Sie die Meldung „Neue Version verfügbar“ erhalten.

3bd532992df458e6.png

  1. Klicken Sie auf „Aktualisieren“, um die neueste Version zu erhalten.
  2. Klicken Sie im nächsten Bildschirm auf „Installieren“.

3a761d8fa4b79d33.png

  1. Glückwunsch! Sie konnten Ihre App mit den integrierten Warnungen aktualisieren.

6. Passen Sie die Anmeldung des Testers an

Die Methoden signInTester/signOutTester und isTesterSignedIn bieten Ihnen mehr Flexibilität bei der Anpassung des Anmeldeerlebnisses Ihres Testers, sodass es besser zum Erscheinungsbild Ihrer App passt.

Im folgenden Beispiel wird überprüft, ob sich der Tester bereits bei seinem Firebase App Distribution-Testerkonto angemeldet hat. Sie können also festlegen, dass Ihre Anmeldeoberfläche nur für Tester angezeigt wird, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie dies tun Rufen Sie checkForUpdate auf, um zu prüfen, ob der Tester Zugriff auf einen neuen Build hat.

Deaktivieren wir die automatische Überprüfung von Updates in viewDidAppear , indem wir den Aufruf checkForUpdate() auskommentieren.

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

Rufen wir stattdessen checkForUpdate() in checkForUpdateButtonClicked( ) auf.

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

Jetzt implementieren wir unsere Methode signInOutButtonClicked() , die den Benutzer anmeldet, wenn er abgemeldet ist, oder den Benutzer abmeldet, wenn er bereits angemeldet ist.

AppDistributionViewController.swift

 @objc func signInOutButtonClicked() {
    if isTesterSignedIn() {
      AppDistribution.appDistribution().signOutTester()

      self.configureCheckForUpdateButton()
      self.configureSignInSignOutButton()
      self.configureSignInStatus()

    } else {
      AppDistribution.appDistribution().signInTester(completion: { error in
        if error == nil {
          self.configureCheckForUpdateButton()
          self.configureSignInSignOutButton()
          self.configureSignInStatus()
        } else {
          let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
          uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
            _ in
          })

          self.present(uiAlert, animated: true, completion: nil)
        }
      })
    }
  }

Zum Schluss implementieren wir die Methode isTesterSignedIn .

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

Erstellen und testen Sie Ihre Implementierung

7. Herzlichen Glückwunsch!

Sie haben die Funktion „Anzeige von In-App-Benachrichtigungen“ mit dem Firebase App Distribution iOS SDK in eine App integriert.

Was wir abgedeckt haben

  • Firebase-App-Verteilung
  • Firebase App Distribution Neue Warnungen iOS SDK

Nächste Schritte

Erfahren Sie mehr

Eine Frage haben?

Probleme melden