Opcjonalne pakiety SDK Firebase App Distribution na iOS i Androida umożliwiają wyświetlanie alerty w aplikacji wysyłane testerom o nowych kompilacjach aplikacji, instalacji. Z tego przewodnika dowiesz się, jak korzystać z pakietów SDK na iOS i Androida (App Distribution) , aby tworzyć i dostosowywać alerty dotyczące nowych kompilacji dla testerów.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiono, dodaj Firebase do projektu na Androida.
Krok 1. Włącz interfejs App Distribution Tester API
Wybierz swój projekt w Google Cloud.
W sekcji Firebase App Testers API kliknij Włącz.
Krok 2. Dodaj do aplikacji App Distribution
Pakiet Android SDK App Distribution składa się z 2 bibliotek:
firebase-appdistribution-api
– biblioteka tylko dla interfejsu API, którą możesz uwzględnić 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. Jeśli nie jest dostępna pełna implementacja pakietu SDK, wywołania nie będą miały żadnego wpływu.
Zadeklaruj zależność od pakietu SDK App Distribution na Androida w pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts
lub <project>/<app-module>/build.gradle
). Aby uniknąć dołączania w wersjach Play pełnej implementacji pakietu SDK, która zawiera funkcję automatycznej aktualizacji, dodaj do wszystkich wariantów kompilacji zależność od biblioteki zawierającej tylko interfejs API.
Pełną implementację pakietu SDK dodaj tylko do wariantów przeznaczonych wyłącznie do testowania przedpremierowego.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta14")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta14")
}
Szukasz modułu biblioteki dla Kotlina? 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
Za pomocą pakietu SDK do Androida (App Distribution) możesz skonfigurować te usługi: alerty dotyczące kompilacji w aplikacji dla testerów:
- podstawowa konfiguracja alertów, która zawiera gotowe dialogi dotyczące aktualizacji aplikacji i logowania, wyświetlane testerom;
- Zaawansowana konfiguracja alertów, która umożliwia dostosowanie własnego interfejsu użytkownika.
Jeśli używasz pakietu SDK Androida App Distribution po raz pierwszy, zalecamy przy użyciu opcji 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 konstrukcja. Po wywołaniu metoda wykonuje tę sekwencję:
Sprawdza, czy tester ma włączone alerty. Jeśli tester nie włączył jeszcze funkcji alertów, metoda poprosi testera o zalogowanie się w aplikacji App Distribution za pomocą konta swoje konto Google.
Sprawdza, czy są dostępne nowe kompilacje, które może zainstalować tester.
Wyświetla gotowy alert z prośbą o aktualizację.
Jeśli nowa kompilacja to pakiet Android App Bundle (AAB), przekierowuje testera adres Google Play, aby dokończyć proces aktualizacji.
Jeśli nowa wersja jest pakietem aplikacji na Androida (APK), pakiet SDK pobiera nową wersję w tle i po zakończeniu pobierania prosi testera o jej zainstalowanie. Pakiet SDK wysyła powiadomienia o postępie pobierania do użytkownika za pomocą
NotificationManager
. Możesz też dodać własne postępy wskaźnik, dołączając moduł obsługionProgressUpdate
do ZadanieupdateIfNewReleaseAvailable
.
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. Jeśli są spełnione te warunki, gdy wersja jest dostępna do zainstalowania, wyświetla się okno:
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 sprawdza, czy tester jest już zalogowany na swoje konto App Distribution. 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ć, w interfejsie logowania wywołaj funkcję signInTester()
:
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
zapewniają większą elastyczność w dostosowywaniu momentu wyświetlenia prośby o aktualizację testerowi. Możesz też dostosować gotowe okno aktualizacji i wskaźnik postępu pobierania, aby lepiej pasowały do wyglądu i działania 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.
W tym przykładzie sprawdzamy, czy jest dostępna nowa wersja, a potem wyświetlamy niestandardowy interfejs. Zanim wywołasz metody checkForNewRelease
i updateApp
, upewnij się, że tester jest zalogowany, korzystając z zaawansowanej konfiguracji logowania.
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ę, rozpowszechniając kompilację wśród testerów za pomocą konsoli Firebase.
Odwiedź App Distribution Przewodnik dotyczący rozwiązywania problemów 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