Opcjonalne pakiety SDK Firebase App Distribution dla systemów iOS i Android umożliwiają wyświetlanie testerom alertów w aplikacji, gdy dostępne są nowe wersje aplikacji do zainstalowania. W tym przewodniku wyjaśniono, jak używać zestawów SDK App Distribution dla systemów iOS i Android do tworzenia i dostosowywania nowych alertów kompilacji dla testerów.
Zanim zaczniesz
Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .
Krok 1 : Włącz interfejs API testera dystrybucji aplikacji
Wybierz swój projekt w Google Cloud Console .
W sekcji Firebase App Testers API kliknij Włącz .
Krok 2 : Dodaj dystrybucję aplikacji do swojej aplikacji
Pakiet SDK dystrybucji aplikacji na Androida składa się z dwóch bibliotek:
-
firebase-appdistribution-api
— biblioteka obsługująca tylko interfejs API, którą można uwzględnić we wszystkich wariantach kompilacji . -
firebase-appdistribution
— pełna implementacja SDK (opcjonalnie).
Biblioteka obsługująca tylko interfejs API umożliwia kodowi wykonywanie wywołań do zestawu SDK. Wywołania nie będą miały żadnego efektu, jeśli nie będzie dostępna pełna implementacja zestawu SDK.
Zadeklaruj zależność dla zestawu Android SDK dystrybucji aplikacji w pliku Gradle modułu (na poziomie aplikacji) (zwykle jest app/build.gradle
). Aby uniknąć dołączania funkcji samoaktualizacji pełnej implementacji SDK do swoich kompilacji Play, dodaj zależność tylko od biblioteki API do wszystkich wersji kompilacji . Pełną implementację SDK dodawaj tylko do wersji, które są przeznaczone wyłącznie do testów przedpremierowych:
Kotlin+KTX
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta08'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta08'
}
Java
dependencies {
// ADD the API-only library to all variants
implementation 'com.google.firebase:firebase-appdistribution-api:16.0.0-beta08'
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta08'
}
Krok 3 : Skonfiguruj alerty w aplikacji
Pakiet App Distribution Android SDK udostępnia następujące sposoby konfigurowania alertów tworzenia w aplikacji dla testerów:
- Podstawowa konfiguracja alertów, która jest dostarczana ze wstępnie skompilowaną aktualizacją aplikacji i oknami dialogowymi logowania, które są wyświetlane testerom.
- Zaawansowana konfiguracja alertów, która umożliwia dostosowanie własnego interfejsu użytkownika.
Jeśli używasz pakietu App Distribution Android SDK po raz pierwszy, zalecamy skorzystanie z konfiguracji podstawowej .
Podstawowa konfiguracja
Użyj updateIfNewReleaseAvailable
, aby wyświetlić gotowe okno dialogowe włączania alertów testerom, którzy jeszcze nie włączyli alertów, a następnie sprawdź, czy dostępna jest nowa kompilacja. Po wywołaniu metoda wykonuje następującą sekwencję:
Sprawdza, czy tester włączył alerty. Jeśli tester nie włączył jeszcze alertów, metoda monituje testera o zalogowanie się do dystrybucji aplikacji przy użyciu konta Google.
Sprawdza nowe dostępne kompilacje do zainstalowania przez testera.
Wyświetla wbudowany alert z monitem testera o aktualizację.
Jeśli nowa kompilacja to pakiet Android App Bundle (AAB), przekierowuje testera do Google Play, aby dokończyć proces aktualizacji.
Jeśli nowa kompilacja to pakiet aplikacji na Androida (APK), zestaw SDK pobiera nową kompilację w tle i monituje testera o zainstalowanie po zakończeniu pobierania. Zestaw SDK wysyła do użytkownika powiadomienia o postępie pobierania za pomocą
NotificationManager
. Możesz także dodać własny wskaźnik postępu, dołączając moduł obsługionProgressUpdate
do zadaniaupdateIfNewReleaseAvailable
.
Możesz wywołać updateIfNewReleaseAvailable
w dowolnym momencie w swojej aplikacji. Na przykład możesz wywołać updateIfNewReleaseAvailable
podczas metody onResume
głównej aktywności aplikacji.
Poniższy przykład sprawdza, czy tester włączył alerty i ma dostęp do nowej kompilacji. Jeśli te warunki są spełnione, zostanie wyświetlone okno dialogowe, 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;
}
}
});
Zaawansowana konfiguracja
Zaawansowana konfiguracja logowania
Metody signInTester
i isTesterSignedIn
zapewniają większą elastyczność w dostosowywaniu środowiska logowania testera, dzięki czemu środowisko testera może lepiej pasować do wyglądu i działania Twojej aplikacji.
Poniższy przykład sprawdza, czy tester zalogował się już na swoim koncie testera dystrybucji aplikacji. Dzięki temu możesz wybrać wyświetlanie interfejsu użytkownika logowania (UI) tylko testerom, którzy jeszcze się nie zalogowali. Po zalogowaniu się testera możesz wywołać funkcję updateIfNewReleaseAvailable
, aby 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.
});
}
W interfejsie logowania, gdy tester zdecyduje się kontynuować, 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ść dostosowywania, gdy tester jest proszony o aktualizację. Możesz także dostosować gotowe okno dialogowe aktualizacji i wskaźnik postępu pobierania, aby lepiej pasowały do wyglądu i działania Twojej aplikacji.
Pamiętaj, że updateApp
nie zapewnia informacji o postępie pobierania. Oznacza to, że musisz zaimplementować własne wskazanie postępu za pomocą NotificationManager
, jakiegoś rodzaju wyświetlania stanu w aplikacji lub innego podejścia.
Poniższy przykład sprawdza, czy dostępna jest nowa wersja, a następnie wyświetla niestandardowy interfejs użytkownika. Przed wywołaniem checkForNewRelease
i updateApp
upewnij się, że tester jest zalogowany przy użyciu 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 interfejsu użytkownika aktualizacji, wywołaj funkcję 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 : Zbuduj i przetestuj swoją implementację
Zbuduj aplikację i przetestuj implementację, dystrybuując kompilację do testerów za pomocą konsoli Firebase.
Odwiedź przewodnik rozwiązywania problemów z dystrybucją aplikacji, aby uzyskać pomoc dotyczącą typowych problemów, takich jak:
- Tester nie otrzymuje alertów w aplikacji
- Tester jest proszony o zalogowanie się w Google więcej niż jeden raz