Mit den optionalen Firebase App Distribution-SDKs für iOS und Android können Sie In-App-Benachrichtigungen für Ihre Tester anzeigen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In diesem Leitfaden wird beschrieben, wie Sie mit den App Distribution SDKs für iOS und Android neue Build-Benachrichtigungen für Ihre Tester erstellen und anpassen.
Hinweis
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
Schritt 1: App Distribution Tester API aktivieren
Wählen Sie Ihr Projekt in der Google Cloud-Console aus.
Klicken Sie unter „Firebase App Testers API“ auf Aktivieren.
Schritt 2: App Distribution in Ihre App einfügen
Das App Distribution Android SDK besteht aus zwei Bibliotheken:
firebase-appdistribution-api
: Die reine API-Bibliothek, die Sie in alle Build-Varianten einbinden können.firebase-appdistribution
– Die vollständige SDK-Implementierung (optional).
Mit der reinen API-Bibliothek kann Ihr Code Aufrufe an das SDK senden. Die Aufrufe haben keine Auswirkungen, wenn die vollständige SDK-Implementierung nicht vorhanden ist.
Deklarieren Sie die Abhängigkeit für das App Distribution Android SDK in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel <project>/<app-module>/build.gradle.kts
oder <project>/<app-module>/build.gradle
). Damit die Selbstaktualisierungsfunktion der vollständigen SDK-Implementierung nicht in Ihre Play-Builds aufgenommen wird, fügen Sie die API-only-Bibliotheksabhängigkeit allen Build-Varianten hinzu.
Fügen Sie die vollständige SDK-Implementierung nur Varianten hinzu, die ausschließlich für Vorabveröffentlichungstests vorgesehen sind.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta16")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta16")
}
Sie suchen nach einem Kotlin-spezifischen Bibliotheksmodul? Ab der Version vom Oktober 2023 können sowohl Kotlin- als auch Java-Entwickler das Hauptbibliotheksmodul verwenden. Weitere Informationen finden Sie in den FAQs zu dieser Initiative.
Schritt 3: In-App-Benachrichtigungen konfigurieren
Das App Distribution Android SDK bietet die folgenden Möglichkeiten, In-App-Build-Benachrichtigungen für Ihre Tester einzurichten:
- Eine einfache Benachrichtigungskonfiguration mit integrierten Dialogfeldern für App-Updates und Anmeldungen, die Testern angezeigt werden.
- Eine erweiterte Benachrichtigungskonfiguration, mit der Sie Ihre eigene Benutzeroberfläche anpassen können.
Wenn Sie das App Distribution Android SDK zum ersten Mal verwenden, empfehlen wir die einfache Konfiguration.
Grundlegende Konfiguration
Verwenden Sie updateIfNewReleaseAvailable
, um Testern, die Benachrichtigungen noch nicht aktiviert haben, ein vorgefertigtes Dialogfeld zum Aktivieren von Benachrichtigungen anzuzeigen. Prüfen Sie dann, ob ein neuer Build verfügbar ist. Wenn die Methode aufgerufen wird, wird die folgende Sequenz ausgeführt:
Prüft, ob ein Tester Benachrichtigungen aktiviert hat. Wenn der Tester noch keine Benachrichtigungen aktiviert hat, wird er durch die Methode aufgefordert, sich mit seinem Google-Konto in App Distribution anzumelden.
Prüft, ob neue Builds für den Tester zur Installation verfügbar sind.
Zeigt eine vorgefertigte Benachrichtigung an, in der der Tester aufgefordert wird, die App zu aktualisieren.
Wenn es sich bei dem neuen Build um ein Android App Bundle (AAB) handelt, wird der Tester zu Google Play weitergeleitet, um den Aktualisierungsvorgang abzuschließen.
Wenn es sich bei dem neuen Build um ein Android-Anwendungspaket (APK) handelt, lädt das SDK den neuen Build im Hintergrund herunter und fordert den Tester auf, ihn zu installieren, sobald der Download abgeschlossen ist. Das SDK sendet Downloadfortschrittsbenachrichtigungen an den Nutzer über
NotificationManager
. Sie können auch einen eigenen Fortschrittsindikator hinzufügen, indem Sie derupdateIfNewReleaseAvailable
-Aufgabe einenonProgressUpdate
-Handler zuweisen.
Sie können updateIfNewReleaseAvailable
jederzeit in Ihrer App aufrufen, z. B. in der Methode onResume
der Hauptaktivität der App.updateIfNewReleaseAvailable
Im folgenden Beispiel wird geprüft, ob der Tester Benachrichtigungen aktiviert hat und Zugriff auf einen neuen Build hat. Wenn diese Bedingungen erfüllt sind, wird ein Dialogfeld angezeigt, wenn der Build zur Installation verfügbar ist:
Kotlin
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
val firebaseAppDistribution = FirebaseAppDistribution.getInstance()
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
// (Optional) Handle errors.
if (e is FirebaseAppDistributionException) {
when (e.errorCode) {
Status.NOT_IMPLEMENTED -> {
// SDK did nothing. This is expected when building for Play.
}
else -> {
// Handle other errors.
}
}
}
}
Java
// Copy and paste this into any part of your app - for example, in your main
// activity's onResume method.
FirebaseAppDistribution firebaseAppDistribution = FirebaseAppDistribution.getInstance();
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener(updateProgress -> {
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
})
.addOnFailureListener(e -> {
// (Optional) Handle errors.
if (e instanceof FirebaseAppDistributionException) {
switch (((FirebaseAppDistributionException)e).getErrorCode()) {
case NOT_IMPLEMENTED:
// SDK did nothing. This is expected when building for Play.
break;
default:
// Handle other errors.
break;
}
}
});
Erweiterte Konfiguration
Erweiterte Anmeldekonfiguration
Die Methoden signInTester
und isTesterSignedIn
bieten Ihnen mehr Flexibilität bei der Anpassung der Anmeldeoberfläche für Tester, sodass sie besser zum Erscheinungsbild Ihrer App passt.
Im folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem App Distribution-Testerkonto angemeldet hat. So können Sie die Anmelde-Benutzeroberfläche nur für Tester anzeigen lassen, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie updateIfNewReleaseAvailable
aufrufen, um zu prüfen, ob der Tester Zugriff auf einen neuen Build hat.
Kotlin
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener {
// Handle failed update.
}
}
Java
// Only show sign-in UI if this is the "beta" variant (example).
if (BuildConfig.BUILD_TYPE == "beta" && !firebaseAppDistribution.isTesterSignedIn()) {
// Start your sign-in UI here.
}
// Only check for updates if the tester is already signed in (do not prompt).
if (firebaseAppDistribution.isTesterSignedIn()) {
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener( e -> {
// Handle failed update.
});
}
Rufen Sie in der Anmelde-UI signInTester()
auf, wenn der Tester fortfahren möchte:
Kotlin
firebaseAppDistribution.signInTester().addOnSuccessListener {
// Handle successful sign-in.
}.addOnFailureListener {
// Handle failed sign-in.
});
Java
firebaseAppDistribution.signInTester().addOnSuccessListener( unused -> {
// Handle successful sign-in.
}).addOnFailureListener(e -> {
// Handle failed sign-in.
});
Erweiterte Konfiguration von Updates
Die Methoden checkForNewRelease
und updateApp
bieten Ihnen mehr Flexibilität bei der Anpassung des Zeitpunkts, zu dem Ihr Tester aufgefordert wird, ein Update durchzuführen. Sie können auch den vorgefertigten Aktualisierungsdialog und die Fortschrittsanzeige für den Download anpassen, damit sie besser zum Erscheinungsbild Ihrer App passen.
Beachten Sie, dass updateApp
keine Informationen zum Downloadfortschritt liefert. Das bedeutet, dass Sie mit NotificationManager
, einer Art In-App-Statusanzeige oder einem anderen Ansatz eine eigene Fortschrittsanzeige implementieren müssen.
Im folgenden Beispiel wird geprüft, ob eine neue Version verfügbar ist, und dann wird eine benutzerdefinierte Benutzeroberfläche angezeigt. Bevor Sie checkForNewRelease
und updateApp
aufrufen, müssen Sie dafür sorgen, dass der Tester mit der erweiterten Anmeldekonfiguration angemeldet ist.
Kotlin
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener { release ->
if (release != null) {
// New release available. Start your update UI here.
}
}.addOnFailureListener {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
}
Java
firebaseAppDistribution.checkForNewRelease().addOnSuccessListener(release -> {
if (release != null) {
// New release available. Start your update UI here.
}
}).addOnFailureListener(e -> {
// Handle failed check for new release. Fails with Status#NOT_IMPLEMENTED
// if built for Play.
});
Wenn der Tester sich entscheidet, das Update über Ihre Update-Benutzeroberfläche fortzusetzen, rufen Sie updateApp()
auf:
Kotlin
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
Schritt 4: Implementierung erstellen und testen
Erstellen Sie Ihre App und testen Sie die Implementierung, indem Sie den Build über die Firebase-Konsole für Tester freigeben.
Im App Distribution-Leitfaden zur Fehlerbehebung finden Sie Hilfe zu häufigen Problemen wie:
- Tester erhalten keine In-App-Benachrichtigungen
- Tester werden mehrmals aufgefordert, sich bei Google anzumelden