Benachrichtigen Sie Tester über neue Builds

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.

Bevor Sie beginnen

Falls noch nicht geschehen, fügen Sie Firebase zu Ihrem Android-Projekt hinzu .

Schritt 1 : Aktivieren Sie die App Distribution Tester-API

  1. Wählen Sie Ihr Projekt in der Google Cloud Console aus.

  2. Klicken Sie unter Firebase App Testers API auf Aktivieren .

Schritt 2 : Fügen Sie die App-Verteilung 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 reinen API-Bibliothek kann Ihr Code das SDK aufrufen. Die Aufrufe haben keine Wirkung, wenn nicht die vollständige SDK-Implementierung vorhanden ist.

Deklarieren Sie die Abhängigkeit für das App Distribution Android SDK in der Gradle-Datei Ihres Moduls (App-Ebene) (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle ). Um zu vermeiden, dass die vollständige Selbstaktualisierungsfunktionalität der SDK-Implementierung in Ihre Play-Builds einbezogen wird, fügen Sie allen Build-Varianten die reine API-Bibliotheksabhängigkeit hinzu. Fügen Sie die vollständige SDK-Implementierung nur zu 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-beta12")

    // ADD the full SDK implementation to the "beta" variant only (example)
    betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta12")
}

Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Ab der Veröffentlichung vom Oktober 2023 können sich sowohl Kotlin- als auch Java-Entwickler auf das Hauptbibliotheksmodul verlassen (Einzelheiten finden Sie in den FAQ zu dieser Initiative ).

Schritt 3 : Konfigurieren Sie In-App-Benachrichtigungen

Das App Distribution Android SDK bietet die folgenden Möglichkeiten zum Einrichten von In-App-Build-Benachrichtigungen für Ihre Tester:

  • Eine grundlegende Alarmkonfiguration, die mit vorgefertigten App-Updates und Anmeldedialogen zur Anzeige für Tester ausgestattet ist.
  • 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 Testern, die noch keine Warnungen aktiviert haben, ein vorgefertigtes Dialogfeld zum Aktivieren von Warnungen anzuzeigen und dann zu prüfen, ob ein neuer Build verfügbar ist. Beim Aufruf führt die Methode die folgende Sequenz aus:

  1. Ü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.

  2. Sucht nach neu verfügbaren Builds, die der Tester installieren kann.

  3. Zeigt eine vorgefertigte Warnung an, die den Tester zur Aktualisierung auffordert.

  4. 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 eine Android-Anwendung PacKage (APK) handelt, lädt das SDK den neuen Build im Hintergrund herunter und fordert den Tester nach Abschluss des Downloads zur Installation auf. Das SDK sendet mithilfe von NotificationManager Download-Fortschrittsbenachrichtigungen an den Benutzer. Sie können auch Ihre eigene Fortschrittsanzeige hinzufügen, indem Sie einen onProgressUpdate Handler an die updateIfNewReleaseAvailable -Aufgabe anhängen.

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.

Im folgenden Beispiel wird überprü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 bieten Ihnen mehr Flexibilität bei der Anpassung des Anmeldeerlebnisses Ihres Testers, sodass das Testererlebnis besser zum Erscheinungsbild Ihrer App passt.

Im folgenden Beispiel wird überprüft, ob sich der Tester bereits bei seinem App Distribution-Testerkonto angemeldet hat. Dadurch 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.
    });
}

Wenn der Tester über Ihre Anmeldeoberfläche fortfahren möchte, rufen Sie signInTester() auf:

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 bieten Ihnen mehr Flexibilität bei der Anpassung, wann Ihr Tester zum Aktualisieren aufgefordert wird. Sie können auch den vorgefertigten Update-Dialog und die Download-Fortschrittsanzeige anpassen, damit sie besser zum Erscheinungsbild Ihrer App passen.

Beachten Sie, dass updateApp keine Anzeige des Download-Fortschritts bietet. Das bedeutet, dass Sie Ihre eigene Fortschrittsanzeige mithilfe von 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 Aufruf checkForNewRelease und updateApp sicher, dass der Tester mit 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 beschließt, mit dem Update über Ihre Update-Benutzeroberfläche fortzufahren, rufen Sie updateApp() auf:

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 über die 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.:

  • Der Tester erhält keine In-App-Benachrichtigungen
  • Der Tester wird mehr als einmal aufgefordert, sich bei Google anzumelden