Benachrichtigen Sie Tester über Ihre neuen App-Releases mit 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 Ihrer App das App Distribution SDK 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 zum Empfangen von Updates anzumelden. Dann pushen Sie eine neue Version an die App-Verteilung und lösen direkt in der App eine neue Build-Warnung aus.

Was Sie lernen werden

  • So verwenden Sie die App-Verteilung, 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, aber Simulatoren können keine Versionen herunterladen.)

Wie werden Sie dieses Tutorial verwenden?

Nur durchlesen Lies es und vervollständige die Übungen

Wie würden Sie Ihre Erfahrung mit dem Erstellen 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

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

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

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 Podfile im selben Verzeichnis
cd firebase-appdistribution-ios/start
Open Podfile
  1. Fügen Sie Ihrer Pod-Datei die folgende Zeile hinzu:

Podfile

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 so, dass 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 in den Projekteinstellungen zu finden ist . Dies sollte "com.google.firebase.codelab.AppDistribution.<your_name>" lauten.

Fügen Sie Ihrer App Firebase hinzu

Suchen Sie die Datei GoogleService-Info.plist , die Sie zuvor in Ihrem Dateisystem heruntergeladen haben, 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 am Anfang der Datei

AppDistributionExample/AppDelegate.swift

import Firebase

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

AppDistributionExample/AppDelegate.swift

FirebaseApp.configure()

4. Richten Sie In-App-Warnungen für neue Builds mit dem App Distribution SDK ein

In diesem Schritt fügen Sie Ihrer App das Firebase App Distribution SDK 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 (in der Google Cloud Console) aktiviert haben. Sie müssen sich mit demselben Konto anmelden und das richtige Projekt aus dem Dropdown-Menü oben auswählen.

Konfigurieren Sie In-App-Warnungen

Das App Distribution SDK bietet zwei Möglichkeiten zum Einrichten von In-App-Build-Benachrichtigungen für Ihre Tester: eine grundlegende Benachrichtigungskonfiguration, die mit einem vorgefertigten Anmeldedialog geliefert wird, der den Testern angezeigt wird, 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 vorgefertigtes Dialogfeld angezeigt, das 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 Updates Ihrer App hinweg bestehen. Warnungen bleiben auf dem Testgerät aktiviert, bis entweder die App deinstalliert oder 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 an jeder Stelle in Ihre App einbinden. Beispielsweise können Sie Ihre Tester auffordern, neu verfügbare Builds beim Start zu installieren, indem Sie checkForUpdate in viewDidAppear von UIViewController einfügen.

Importieren Sie in Ihrer AppDistributionViewController.swift Datei Firebase am Anfang 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()
 }

Lassen Sie uns nun die Methode checkForUpdate() implementieren.

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 Tester und laden Sie sie ein, Ihre App herunterzuladen

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

Erstellen Sie Ihre Anwendung

Wenn Sie bereit sind, eine Vorabversion Ihrer App an Tester zu verteilen, wählen Sie „Jedes iOS-Gerät (arm64)“ als Build-Ziel und dann „Produkt“ > „Archiv“ aus. Nachdem das Archiv erstellt wurde, erstellen Sie eine signierte Verteilung mit dem Verteilungsprofil „Entwicklung“.

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 Sie beim Erstellen Ihrer App auf Probleme stoßen, finden Sie Schritte zur Fehlerbehebung in den Codesigning-Dokumenten von Apple .

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. Drücken Sie auf Los geht's

e4671bd304ecfe47.png

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

8a3da2939b9746f4.png

  1. Ziehen Sie die IPA-Datei Ihrer App auf die Konsole, um sie hochzuladen.
  2. Geben Sie nach Abschluss des Uploads 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 Testern zur Verfügung zu stellen.

b6e75dc216fc3731.png

Fügen Sie sich als Tester zum Release hinzu

In der Firebase-Konsole können Sie jetzt die Tester sehen, die Sie unter der Version 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. 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

Sie müssen zuerst 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-Web-App 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 jetzt zurück in die App-Verteilung gehen, wird die Version jetzt als "Gerät registriert" markiert:

fe93d649dfa25877.png

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

Zeigen Sie Testerinformationen in der Konsole an

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

1bef6f182c1c58f9.png

Sie erhalten dann auch als Entwickler eine E-Mail, wenn das 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 und 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 zu Ihrem Apple-Entwicklerportal hinzu.
  • Option 1: Importieren Sie die Geräte-UDIDs als CSV-Datei. Wählen Sie auf der Registerkarte „Tester & Gruppen“ des App-Verteilungs-Dashboards „Alle Tester“ aus und klicken Sie dann auf „Apple-UDIDs exportieren“, um eine CSV-Datei herunterzuladen. Importieren Sie als Nächstes 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: UDIDs per E-Mail sammeln und eingeben. Registrieren Sie auf der Seite „Geräte hinzufügen“ des Apple-Entwicklerportals die neue UDID, die in der erhaltenen E-Mail angegeben ist.

ffb74294e68ee1c8.png

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

Laden Sie die Version vom Testgerät herunter

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

6e3540a2900734e6.png

  1. Dann werden Sie aufgefordert, sich anzumelden. Klicken Sie auf "Weiter".

82d90d7935bfaea0.png

  1. Melden Sie sich mit Ihrem Tester-Konto 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 „Any iOS Device (arm64)“ als Build-Ziel und Product->Archive. Erstellen Sie nach der Generierung des Archivs eine signierte Verteilung mit dem Verteilungsprofil „Entwicklung“.
  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

Benachrichtigungen zum Testen von Builds

  1. Stellen Sie sicher, dass Sie die App geschlossen haben, falls sie geöffnet war. Starten Sie die Anwendung neu.
  2. Wenn die App neu gestartet wird, sollten Sie eine „Neue Version verfügbar“-Warnung 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 Benachrichtigungen aktualisieren.

6. Passen Sie die Anmeldung des Testers an

Die Methoden signInTester/signOutTester und isTesterSignedIn bieten Ihnen mehr Flexibilität beim Anpassen der Anmeldeerfahrung Ihres Testers, damit sie 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, sodass Sie Ihre Anmeldebenutzeroberfläche nur für Tester anzeigen können, 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 viewDidAppea r, 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()
 }

Lassen Sie uns nun unsere Methode signInOutButtonClicked() implementieren, 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)
        }
      })
    }
  }

Schließlich implementieren wir die Methode isTesterSignedI n .

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-Warnungen“ mithilfe des Firebase App Distribution iOS SDK in eine App integriert.

Was wir abgedeckt haben

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

Nächste Schritte

Erfahren Sie mehr

Eine Frage haben?

Probleme melden