Tester über neue Builds informieren


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

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

  2. 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:

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

  2. Prüft, ob neue Builds für den Tester zur Installation verfügbar sind.

  3. Zeigt eine vorgefertigte Benachrichtigung an, in der der Tester aufgefordert wird, ein Update durchzuführen.

  4. 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 Aufgabe updateIfNewReleaseAvailable einen onProgressUpdate-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

Erstellen Sie Ihre App und testen Sie Ihre Implementierung, indem Sie den Build über die Firebase Console an Tester verteilen.

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