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 diesem Handbuch wird erläutert, wie Sie die App Distribution iOS- und Android-SDKs verwenden, um neue Build-Benachrichtigungen für Ihre Tester zu erstellen und anzupassen.
Bevor Sie beginnen
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls Sie dies noch nicht getan haben .
Schritt 1 : Aktivieren Sie die App Distribution Tester-API
Wählen Sie Ihr Projekt in der Google Cloud Console aus.
Klicken Sie unter Firebase App Testers API auf Aktivieren .
Schritt 2 : Fügen Sie App Distribution zu Ihrer App hinzu
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 Nur-API-Bibliothek kann Ihr Code das SDK aufrufen. 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 Ihrer Modul-Gradle-Datei (auf App-Ebene) (normalerweise app/build.gradle
). Um zu vermeiden, dass die Selbstaktualisierungsfunktion der vollständigen SDK-Implementierung in Ihren Play-Builds enthalten ist, fügen Sie allen Build-Varianten die Nur-API-Bibliotheksabhängigkeit hinzu. Fügen Sie die vollständige SDK-Implementierung nur Varianten hinzu, die ausschließlich für Tests vor der Veröffentlichung bestimmt sind:
Kotlin+KTX
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta05'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta05'
}
Java
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api:16.0.0-beta05'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta05'
}
Schritt 3 : Konfigurieren Sie In-App-Warnungen
Das App Distribution Android SDK bietet die folgenden Möglichkeiten zum Einrichten von In-App-Build-Warnungen für Ihre Tester:
- Eine grundlegende Benachrichtigungskonfiguration, die mit vorgefertigten App-Update- und Anmeldedialogen geliefert wird, die Testern angezeigt werden.
- Eine erweiterte Alarmkonfiguration, mit der Sie Ihre eigene Benutzeroberfläche anpassen können.
Wenn Sie das App Distribution Android SDK zum ersten Mal verwenden, empfehlen wir die Verwendung der Basiskonfiguration .
Basiseinstellung
Verwenden Sie updateIfNewReleaseAvailable
, um ein vorgefertigtes Dialogfeld zum Aktivieren von Warnungen für Tester anzuzeigen, die noch keine Warnungen aktiviert haben, und prüfen Sie dann, ob ein neuer Build verfügbar ist. Beim Aufruf führt die Methode die folgende Sequenz aus:
Überprüft, ob ein Tester Warnungen aktiviert hat. Wenn der Tester Benachrichtigungen noch nicht aktiviert hat, fordert die Methode den Tester auf, sich mit seinem Google-Konto bei App Distribution anzumelden.
Sucht nach neu verfügbaren Builds, die der Tester installieren kann.
Zeigt eine vorgefertigte Warnung an, die den Tester zur Aktualisierung auffordert.
Wenn es sich bei dem neuen Build um ein Android App Bundle (AAB) handelt, wird der Tester zu Google Play umgeleitet, 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 zur Installation auf, wenn der Download abgeschlossen ist. Das SDK sendet mithilfe von
NotificationManager
Benachrichtigungen zum Downloadfortschritt an den Benutzer. Sie können auch Ihre eigene Fortschrittsanzeige hinzufügen, indem Sie einenonProgressUpdate
-Handler an dieupdateIfNewReleaseAvailable
Aufgabe anfügen.
Sie können updateIfNewReleaseAvailable
jederzeit in Ihrer App aufrufen. Beispielsweise können Sie updateIfNewReleaseAvailable
während der onResume
Methode der Hauptaktivität der App aufrufen.
Das folgende Beispiel prüft, ob der Tester Warnungen 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+KTX
// 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
geben Ihnen mehr Flexibilität, um die Anmeldeerfahrung Ihres Testers anzupassen, damit die Testererfahrung besser zum Erscheinungsbild Ihrer App passt.
Im folgenden Beispiel wird überprüft, ob sich der Tester bereits bei seinem App Distribution-Testerkonto angemeldet hat. Auf diese Weise können Sie festlegen, dass Ihre Anmeldebenutzeroberfläche (UI) nur Testern angezeigt wird, die sich noch nicht angemeldet haben. Nachdem sich der Tester angemeldet hat, können Sie updateIfNewReleaseAvailable
aufrufen, um zu überprüfen, ob der Tester Zugriff auf einen neuen Build hat.
Kotlin+KTX
// 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 von Ihrer Anmeldebenutzeroberfläche aus signInTester()
auf, wenn der Tester fortfahren möchte:
Kotlin+KTX
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 Update-Konfiguration
Die Methoden checkForNewRelease
und updateApp
geben Ihnen mehr Flexibilität bei der Anpassung, wenn Ihr Tester zur Aktualisierung aufgefordert wird. Sie können auch das vorgefertigte Update-Dialogfeld und die Download-Fortschrittsanzeige anpassen, damit sie besser zum Erscheinungsbild Ihrer App passen.
Beachten Sie, dass updateApp
keine Fortschrittsanzeige für den Download bereitstellt. Das bedeutet, dass Sie Ihre eigene Fortschrittsanzeige mit NotificationManager
, einer Art In-App-Statusanzeige oder einem anderen Ansatz implementieren müssen.
Das folgende Beispiel prüft, ob eine neue Version verfügbar ist, und zeigt dann eine benutzerdefinierte Benutzeroberfläche an. Stellen Sie vor dem Aufrufen checkForNewRelease
und updateApp
sicher, dass der Tester mithilfe der erweiterten Anmeldekonfiguration angemeldet ist.
Kotlin+KTX
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 entscheidet, mit dem Update von Ihrer Update-Benutzeroberfläche fortzufahren, rufen updateApp()
:
Kotlin+KTX
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
Schritt 4 : Erstellen und testen Sie Ihre Implementierung
Erstellen Sie Ihre App und testen Sie Ihre Implementierung, indem Sie den Build mithilfe der Firebase-Konsole an Tester verteilen .
Besuchen Sie den Leitfaden zur Fehlerbehebung bei der App-Verteilung, um Hilfe bei häufigen Problemen zu erhalten, z. B.:
- Tester erhält keine In-App-Warnungen
- Der Tester wird mehr als einmal aufgefordert, sich bei Google anzumelden