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?
Wie würden Sie Ihre Erfahrungen mit der Erstellung von iOS-Apps bewerten?
2. Erstellen Sie ein Firebase-Konsolenprojekt
Neues Firebase-Projekt hinzufügen
- Melden Sie sich bei Firebase an.
- 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.
- 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
- Öffnen Sie die Poddatei im selben Verzeichnis
cd firebase-appdistribution-ios/start Open Podfile
- 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.
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:
- Ü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 ).
- 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.
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:
- Öffnen Sie die Seite „App-Verteilung“ der Firebase-Konsole. Wählen Sie Ihr Firebase-Projekt aus, wenn Sie dazu aufgefordert werden.
- Klicken Sie auf „Erste Schritte“.
- Wählen Sie auf der Seite „Releases“ aus dem Dropdown-Menü die App aus, die Sie verteilen möchten.
- Ziehen Sie die IPA-Datei Ihrer App auf die Konsole, um sie hochzuladen.
- 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 .
- Klicken Sie auf „Verteilen“, um den Build den Testern zur Verfügung zu stellen.
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.
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.
- Ö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.
- Melden Sie sich in der angezeigten Firebase App Distribution- Tester-Webanwendung mit Ihrem Google-Konto an und tippen Sie auf Einladung annehmen.
Jetzt sehen Sie die Veröffentlichung, zu der Sie eingeladen wurden.
- Tippen Sie auf Gerät registrieren , um Ihre UDID mit Firebase zu teilen, damit Sie das Bereitstellungsprofil Ihrer App später aktualisieren können.
- 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:
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:
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.
- Um alle UDIDs zu exportieren, öffnen Sie die Registerkarte Tester & Gruppen.
- Klicken Sie auf „Apple-UDIDs exportieren“.
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:
- 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.
- Fügen Sie die registrierten Geräte Ihrem Bereitstellungsprofil hinzu.
- 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.
- 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.
- 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.
- Wenn Sie ein physisches Gerät verwenden, klicken Sie auf „Herunterladen“, installieren Sie die App und führen Sie sie aus!
- Wenn die App startet, werden Sie aufgefordert, neue Build-Benachrichtigungen zu aktivieren. Wählen Sie „Einschalten“
- Anschließend werden Sie aufgefordert, sich anzumelden. Klicken Sie auf „Weiter“.
- Melden Sie sich mit Ihrem Testerkonto an.
- Sie werden zur App zurückgeleitet. Sie müssen sich beim nächsten Ausführen der App nicht anmelden oder Benachrichtigungen akzeptieren.
Verteilen Sie ein Update an Ihre Tester
- Aktualisieren Sie Ihre Build-Nummer auf „2“.
- 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“.
- 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.
Testen Sie Build-Benachrichtigungen
- Stellen Sie sicher, dass Sie die App geschlossen haben, falls sie geöffnet war. Starten Sie die App neu.
- Beim Neustart der App sollten Sie die Meldung „Neue Version verfügbar“ erhalten.
- Klicken Sie auf „Aktualisieren“, um die neueste Version zu erhalten.
- Klicken Sie im nächsten Bildschirm auf „Installieren“.
- 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