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?
Wie würden Sie Ihre Erfahrung mit dem Erstellen 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
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
- Öffnen Sie die Podfile im selben Verzeichnis
cd firebase-appdistribution-ios/start Open Podfile
- 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.
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:
- Ü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 ).
- 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“.
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:
- Öffnen Sie die Seite „App-Verteilung“ der Firebase-Konsole. Wählen Sie Ihr Firebase-Projekt aus, wenn Sie dazu aufgefordert werden.
- Drücken Sie auf Los geht's
- Wählen Sie auf der Seite Releases die App, die Sie verteilen möchten, aus dem Dropdown-Menü aus.
- Ziehen Sie die IPA-Datei Ihrer App auf die Konsole, um sie hochzuladen.
- 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 .
- Klicken Sie auf Verteilen, um den Build Testern zur Verfügung zu stellen.
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.
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.
- Ö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-Web-App 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 jetzt zurück in die App-Verteilung gehen, wird die Version jetzt als "Gerät registriert" markiert:
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:
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.
- Um alle UDIDs zu exportieren, öffnen Sie die Registerkarte Tester und 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 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.
- Fügen Sie die registrierten Geräte Ihrem Bereitstellungsprofil hinzu .
- 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.
- 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.
- 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.
- Wenn Sie sich auf einem physischen Gerät befinden, klicken Sie auf Download, 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“
- Dann werden Sie aufgefordert, sich anzumelden. Klicken Sie auf "Weiter".
- Melden Sie sich mit Ihrem Tester-Konto 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 „Any iOS Device (arm64)“ als Build-Ziel und Product->Archive. Erstellen Sie nach der Generierung des Archivs eine signierte Verteilung mit dem Verteilungsprofil „Entwicklung“.
- 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.
Benachrichtigungen zum Testen von Builds
- Stellen Sie sicher, dass Sie die App geschlossen haben, falls sie geöffnet war. Starten Sie die Anwendung neu.
- Wenn die App neu gestartet wird, sollten Sie eine „Neue Version verfügbar“-Warnung 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 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