Tester über neue Builds informieren


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

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

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

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

  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, die App zu aktualisieren.

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