Mit den optionalen Firebase App Distribution iOS- und Android-SDKs können Sie Ihren Testern In-App-Benachrichtigungen anzeigen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In dieser Anleitung wird erläutert, wie Sie mit den App Distribution iOS- und Android-SDKs 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 Konsole aus.
Klicken Sie unter „Firebase App Testers API“ auf Aktivieren.
Schritt 2: App Distribution Ihrer App hinzufügen
Das App Distribution Android SDK besteht aus zwei Bibliotheken:
firebase-appdistribution-api- Die reine API-Bibliothek, die Sie in alle Build-Varianten einbeziehen 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 Funktion zur automatischen Aktualisierung der vollständigen SDK
Implementierung nicht in Ihre Play Builds aufgenommen wird,
fügen Sie die Abhängigkeit der reinen API-Bibliothek allen
Build-Varianten hinzu.
Fügen Sie die vollständige SDK-Implementierung nur Varianten hinzu, die ausschließlich für Tests vor der Veröffentlichung vorgesehen sind.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta18")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta18")
}
Sie suchen ein Kotlin-spezifisches Bibliotheksmodul? Ab der Version vom Oktober 2023können sowohl Kotlin- als auch Java-Entwickler vom Hauptbibliotheksmodul abhängig sein (Weitere Informationen finden Sie in den FAQs zu dieser Initiative).
Schritt 3: In-App-Benachrichtigungen konfigurieren
Das App Distribution Android SDK bietet folgende Möglichkeiten, In-App-Build-Benachrichtigungen für Ihre Tester einzurichten:
- Eine grundlegende Benachrichtigungskonfiguration mit vorgefertigten Dialogfeldern für App-Updates und Anmeldungen, die den Testern angezeigt werden.
- Eine erweiterte Benachrichtigungskonfiguration, mit der Sie eine eigene Benutzeroberfläche anpassen können.
Wenn Sie das App Distribution Android SDK zum ersten Mal verwenden, empfehlen wir die grundlegende Konfiguration.
Grundlegende Konfiguration
Verwenden Sie updateIfNewReleaseAvailable, um Testern, die Benachrichtigungen noch nicht aktiviert haben, ein vorgefertigtes Dialogfeld zum Aktivieren von Benachrichtigungen anzuzeigen und dann zu prüfen, 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 Benachrichtigungen noch nicht aktiviert hat, wird er von der Methode aufgefordert, sich mit seinem Google-Konto bei 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, ein Update durchzuführen.
Wenn der neue Build ein Android App Bundle (AAB) ist, wird der Tester zu Google Play weitergeleitet, um den Updatevorgang abzuschließen.
Wenn der neue Build ein Android-Anwendungspaket (APK) ist, 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 Download-Fortschrittsbenachrichtigungen an den Nutzer über
NotificationManager. Sie können auch eine eigene Fortschrittsanzeige hinzufügen, indem Sie der AufgabeupdateIfNewReleaseAvailableeinenonProgressUpdate-Handler anhängen.
Sie können updateIfNewReleaseAvailable jederzeit in Ihrer App aufrufen. Sie können updateIfNewReleaseAvailable beispielsweise während der Methode onResume der Hauptaktivität der App aufrufen.
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
Mit den Methoden signInTester und isTesterSignedIn haben Sie mehr Flexibilität bei der Anpassung der Anmeldung für Ihre Tester, sodass die Testerfahrung besser zum Erscheinungsbild Ihrer App passt.
Im folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem
App Distribution Testkonto angemeldet hat. So können Sie die Benutzeroberfläche für die Anmeldung nur Testern anzeigen, 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 über die Benutzeroberfläche für die Anmeldung 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 Updatekonfiguration
Mit den Methoden checkForNewRelease und updateApp haben Sie mehr Flexibilität bei der Anpassung des Zeitpunkts, zu dem der Tester aufgefordert wird, ein Update durchzuführen. Sie können auch das vorgefertigte Update-Dialogfeld und die Fortschrittsanzeige für den Download anpassen, damit sie besser zum Erscheinungsbild Ihrer App passen.
Beachten Sie, dass updateApp keine Fortschrittsanzeige für den Download bietet. Das bedeutet, dass Sie eine eigene Fortschrittsanzeige mit NotificationManager, einer Art In-App-Statusanzeige oder einem anderen Ansatz implementieren müssen.
Im folgenden Beispiel wird geprüft, ob eine Neuveröffentlichung verfügbar ist, und dann eine benutzerdefinierte Benutzeroberfläche angezeigt. Bevor Sie checkForNewRelease und updateApp aufrufen, müssen Sie
sicherstellen, 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 über die Benutzeroberfläche für Updates fortfahren möchte, 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
In der Anleitung zur Fehlerbehebung App Distribution finden Sie Hilfe zu häufig auftretenden Problemen wie:
- Tester erhalten keine In-App-Benachrichtigungen
- Tester werden mehr als einmal aufgefordert, sich bei Google anzumelden