Tester über neue Builds informieren


Mit den optionalen iOS- und Android-SDKs von Firebase App Distribution können Sie Ihren Testerinnen und Testern In-App-Benachrichtigungen anzeigen lassen, wenn neue Builds Ihrer App zur Installation verfügbar sind. In diesem Leitfaden wird beschrieben, wie Sie mit den iOS- und Android-SDKs von App Distribution neue Build-Benachrichtigungen für Ihre Tester erstellen und anpassen.

Hinweis

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

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 zu Ihrer App hinzufügen

Schritt 2: App Distribution zu 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 einbinden können.
  • firebase-appdistribution: Die vollständige SDK-Implementierung (optional).

Mit der API-only-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) (normalerweise <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 allen Build-Varianten die Abhängigkeit für die reine API-Bibliothek 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-beta21")

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

Suchen Sie nach einem Kotlin-spezifischen Bibliotheksmodul? Ab dem Release 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 vordefinierten Dialogfeldern für App-Updates und die Anmeldung, 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 Grundkonfiguration.

Grundlegende Konfiguration

Verwenden Sie updateIfNewReleaseAvailable, um Testern, die Benachrichtigungen noch nicht aktiviert haben, ein vordefiniertes 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 von der Methode aufgefordert, sich mit seinem Google-Konto in App Distribution anzumelden.

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

  3. Zeigt eine vordefinierte 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 Aktualisierungsvorgang abzuschließen.

    Wenn der neue Build ein Android Application Package (APK) ist, lädt das SDK den neuen Build im Hintergrund herunter und fordert den Tester auf, ihn zu installieren, wenn der Download abgeschlossen ist. Das SDK sendet dem Nutzer über NotificationManager Benachrichtigungen zum Downloadfortschritt. Sie können auch eine eigene Fortschrittsanzeige hinzufügen, indem Sie einen onProgressUpdate-Handler an die updateIfNewReleaseAvailable-Aufgabe anhängen.

Sie können updateIfNewReleaseAvailable an einer beliebigen Stelle in Ihrer App aufrufen, z. B. während 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, um die Anmeldung für Tester anzupassen, damit sie besser zum Design Ihrer App passt.

Im folgenden Beispiel wird geprüft, ob sich der Tester bereits in seinem App Distribution-Testerkonto angemeldet hat. So kannst du die Benutzeroberfläche für die Anmeldung 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.
    });
}

Wenn der Tester auf der Benutzeroberfläche für die Anmeldung fortfahren möchte, rufen Sie signInTester() auf:

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

Die Methoden checkForNewRelease und updateApp bieten Ihnen mehr Flexibilität, um festzulegen, wann Ihre Tester zur Aktualisierung aufgefordert werden. Du kannst auch das vordefinierte Update-Dialogfeld und die Fortschrittsanzeige für den Download anpassen, damit sie besser zum Design deiner App passen.

Beachten Sie, dass updateApp keine Anzeige des Downloadfortschritts bietet. Das bedeutet, dass Sie Ihre eigene Fortschrittsanzeige mit NotificationManager, einer Art In-App-Statusanzeige oder einem anderen Ansatz implementieren müssen.

Im folgenden Beispiel wird geprüft, ob ein neuer Release verfügbar ist, und dann 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 das Update über die Update-UI fortsetzt, rufe 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 Console an Tester verteilen.

In der App Distribution-Anleitung zur Fehlerbehebung finden Sie Hilfe bei häufigen Problemen, z. B.:

  • Tester erhält keine In-App-Benachrichtigungen
  • Tester werden mehrmals aufgefordert, sich in Google anzumelden