Powiadamianie testerów o nowych kompilacjach

.

Opcjonalne pakiety SDK Firebase App Distribution na iOS i Androida pozwalają alerty w aplikacji wysyłane testerom o nowych kompilacjach aplikacji, instalacji. Z tego przewodnika dowiesz się, jak korzystać z pakietów SDK App Distribution na iOS i Androida , aby tworzyć i dostosowywać alerty dotyczące nowych kompilacji dla testerów.

Zanim zaczniesz

Dodaj Firebase do swojego projektu Android, chyba że masz to już za sobą.

Krok 1. Włącz interfejs App Distribution Tester API

  1. Wybierz swój projekt w Konsola Google Cloud.

  2. W sekcji Firebase App Testers API kliknij Włącz.

Krok 2. Dodaj Rozpowszechnianie aplikacji do swojej aplikacji

Pakiet App Distribution na Androida SDK składa się z 2 bibliotek:

  • firebase-appdistribution-api – biblioteka obsługująca tylko interfejs API, którą możesz dołączyć we wszystkich wariantach kompilacji.
  • firebase-appdistribution – pełna implementacja pakietu SDK (opcjonalnie).
.

Biblioteka wyłącznie z interfejsem API umożliwia kodowi wywoływanie pakietu SDK. Rozmowy będą miały nie powoduje żadnego efektu, jeśli nie ma pełnej implementacji pakietu SDK.

Zadeklaruj zależność z pakietem SDK App Distribution na Androida w module (na poziomie aplikacji) Plik Gradle (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle). Aby uniknąć dodawania całego pakietu SDK funkcję samodzielnego aktualizowania kompilacji w Google Play, dodaj zależność biblioteki tylko do interfejsu API do wszystkich elementów utwórz warianty. Dodaj pełną implementację pakietu SDK tylko do wariantów, które są przeznaczone wyłącznie do tego celu. do testów przedpremierowych.

dependencies {
    // ADD the API-only library to all variants
    implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta13")

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

Szukasz modułu biblioteki korzystającego z usługi Kotlin? Zaczyna się od Wersja z października 2023 r., zarówno programiści Kotlin, jak i Javy mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w Najczęstsze pytania na temat tej inicjatywy).

Krok 3. Skonfiguruj alerty w aplikacji

Pakiet SDK App Distribution na Androida umożliwia konfigurację alerty dotyczące kompilacji w aplikacji dla testerów:

  • Podstawowa konfiguracja alertów z gotową aktualizacją aplikacji i okna logowania, które będą wyświetlane testerom.
  • Zaawansowana konfiguracja alertów umożliwiająca dostosowanie własnego konta użytkownika za pomocą prostego interfejsu online.

Jeśli używasz pakietu SDK App Distribution na Androida po raz pierwszy, przy użyciu ustawienia Podstawowa konfiguracja.

Podstawowa konfiguracja

Użyj updateIfNewReleaseAvailable, aby wyświetlić gotowe alerty włączenia wyświetli się okno testerom, którzy nie włączyli jeszcze alertów, a następnie sprawdź, czy dostępna jest kompilacja. Po wywołaniu metoda wywołuje tę sekwencję:

  1. Sprawdza, czy tester włączył alerty. Jeśli tester nie włączył jeszcze funkcji alertów, metoda poprosi testera o zalogowanie się w App Distribution za pomocą swoje konto Google.

  2. Sprawdza, czy są dostępne nowe kompilacje, które może zainstalować tester.

  3. Wyświetla gotowy alert z prośbą o aktualizację.

  4. Jeśli nowa kompilacja to pakiet Android App Bundle (AAB), przekierowuje testera adres Google Play, aby dokończyć proces aktualizacji.

    Jeśli nową kompilacją jest pakiet aplikacji na Androida PacKage (APK), pakiet SDK pobiera w tle nową kompilację i prosi testera o jej zainstalowanie po zakończeniu pobierania. Pakiet SDK wysyła powiadomienia o postępach pobierania. użytkownikowi za pomocą funkcji NotificationManager. Możesz też dodać własne postępy wskaźnik, dołączając moduł obsługi onProgressUpdate do Zadanie updateIfNewReleaseAvailable.

Możesz zadzwonić pod numer updateIfNewReleaseAvailable w dowolnym momencie w aplikacji. Dla: na przykład możesz zadzwonić pod numer updateIfNewReleaseAvailable podczas onResume głównej aktywności w aplikacji.

Poniższy przykład pokazuje, czy tester włączył alerty i ma dostęp do nowej budowli. W przypadku spełnienia tych warunków wyświetli się okno gdy kompilacja będzie dostępna do zainstalowania:

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;
        }
      }
    });

Konfiguracja zaawansowana

Zaawansowana konfiguracja logowania

Metody signInTester i isTesterSignedIn dają większą elastyczność dostosować sposób logowania się testera, tak by mógł on lepiej dopasować do wyglądu i stylu aplikacji.

Ten przykład pozwala sprawdzić, czy tester zalogował się już na swoim Konto testera usługi Rozpowszechniania aplikacji. Pozwoli Ci to wyświetlać interfejsu użytkownika (UI) tylko dla tych testerów, którzy jeszcze się nie zalogowali. Po tester loguje się po zalogowaniu się na konto, możesz potem zadzwonić pod numer updateIfNewReleaseAvailable, aby to sprawdzić czy tester ma dostęp do nowej kompilacji.

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.
    });
}

Gdy tester zdecyduje się kontynuować, zadzwoń pod numer signInTester() w interfejsie logowania:

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.
});

Zaawansowana konfiguracja aktualizacji

Metody checkForNewRelease i updateApp dają większą elastyczność dostosować czas wyświetlania prośby o aktualizację przez testera. Możesz też dostosować gotowe okno aktualizacji i wskaźnik postępu pobierania, do wyglądu i stylu Twojej aplikacji.

Pamiętaj, że updateApp nie podaje postępu pobierania. Oznacza to, że musisz wdrożyć własne wskaźniki postępów za pomocą NotificationManager, wyświetlanie stanu w aplikacji lub inny jak ważna jest pokora.

Ten przykład pozwala sprawdzić, czy jest dostępna nowa wersja, a następnie wyświetli niestandardowy interfejs. Zanim zadzwonisz do: checkForNewRelease i updateApp, wykonaj sprawdź, czy tester jest zalogowany, korzystając z konfiguracji logowania zaawansowanego.

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.
});

Gdy tester zdecyduje się kontynuować aktualizację z poziomu interfejsu aktualizacji, wywołaj updateApp():

Kotlin+KTX

firebaseAppDistribution.updateApp()
    .addOnProgressListener { updateState ->
      // Use updateState to show update progress.
    }

Java

firebaseAppDistribution.updateApp()
    .addOnProgressListener(updateState -> {
      // Use updateState to show update progress.
    });

Krok 4. Utwórz i przetestuj implementację

Utwórz aplikację i przetestuj jej implementację przez dystrybucja kompilacji za pomocą konsoli Firebase.

Odwiedź Przewodnik dotyczący rozwiązywania problemów z rozpowszechnianiem aplikacji aby uzyskać pomoc w rozwiązaniu typowych problemów, takich jak:

  • Tester nie otrzymuje alertów w aplikacji
  • Tester jest pytany o zalogowanie się w Google więcej niż raz