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
Dodaj Firebase do swojego projektu Android, chyba że masz to już za sobą.
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 App Distribution do aplikacji
Pakiet SDK na Androida App Distribution 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 swoim 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ę autoaktualizacji wdrożenia w kompilacjach 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
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 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 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 kompilacja. Po wywołaniu metoda wywołuje tę sekwencję:
Sprawdza, czy tester włączył 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 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ł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. 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
App Distribution konto testera. 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 testerom 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