Los SDK opcionales de Firebase App Distribution para iOS y Android te permiten mostrar alertas en la aplicación a tus evaluadores cuando hay nuevas compilaciones de tu aplicación disponibles para instalar. Esta guía explica cómo utilizar los SDK de App Distribution para iOS y Android para crear y personalizar alertas de nuevas compilaciones para sus evaluadores.
Antes de que empieces
Si aún no lo has hecho, agrega Firebase a tu proyecto de Android .
Paso 1 : habilite la API del probador de distribución de aplicaciones
Selecciona tu proyecto en la consola de Google Cloud .
En API de Firebase App Testers, haga clic en Habilitar .
Paso 2 : agregue distribución de aplicaciones a su aplicación
El SDK de Android de distribución de aplicaciones consta de dos bibliotecas:
-
firebase-appdistribution-api
: la biblioteca exclusiva de API, que puedes incluir en todas las variantes de compilación . -
firebase-appdistribution
: la implementación completa del SDK (opcional).
La biblioteca exclusiva de API permite que su código realice llamadas al SDK. Las llamadas no tendrán ningún efecto si no está presente la implementación completa del SDK.
Declare la dependencia del SDK de Android de distribución de aplicaciones en el archivo Gradle de su módulo (nivel de aplicación) (generalmente <project>/<app-module>/build.gradle.kts
o <project>/<app-module>/build.gradle
). Para evitar incluir la funcionalidad de actualización automática de la implementación completa del SDK en sus compilaciones de Play, agregue la dependencia de la biblioteca solo API a todas las variantes de compilación . Agregue la implementación completa del SDK solo a las variantes destinadas exclusivamente a pruebas previas al lanzamiento.
dependencies {
// ADD the API-only library to all variants
implementation("com.google.firebase:firebase-appdistribution-api:16.0.0-beta12")
// ADD the full SDK implementation to the "beta" variant only (example)
betaImplementation("com.google.firebase:firebase-appdistribution:16.0.0-beta12")
}
¿Busca un módulo de biblioteca específico de Kotlin? A partir de la versión de octubre de 2023 , tanto los desarrolladores de Kotlin como los de Java pueden depender del módulo de biblioteca principal (para obtener más detalles, consulte las preguntas frecuentes sobre esta iniciativa ).
Paso 3 : configurar alertas en la aplicación
El SDK de Android de distribución de aplicaciones proporciona las siguientes formas de configurar alertas de compilación en la aplicación para sus evaluadores:
- Una configuración de alerta básica que viene con actualizaciones de aplicaciones prediseñadas y cuadros de diálogo de inicio de sesión para mostrar a los evaluadores.
- Una configuración de alerta avanzada que le permite personalizar su propia interfaz de usuario.
Si está utilizando el SDK de Android de distribución de aplicaciones por primera vez, le recomendamos utilizar la Configuración básica .
Configuracion basica
Utilice updateIfNewReleaseAvailable
para mostrar un cuadro de diálogo de alertas de habilitación prediseñado para los evaluadores que aún no han habilitado las alertas y luego verifique si hay una nueva compilación disponible. Cuando se llama, el método representa la siguiente secuencia:
Comprueba si un probador ha habilitado las alertas. Si el evaluador aún no ha habilitado las alertas, el método le solicita que inicie sesión en App Distribution con su cuenta de Google.
Comprueba si hay compilaciones nuevas disponibles para que las instale el probador.
Muestra una alerta prediseñada que solicita al evaluador que actualice.
Si la nueva compilación es un paquete de aplicaciones de Android (AAB), redirige al evaluador a Google Play para completar el proceso de actualización.
Si la nueva compilación es un paquete de aplicación de Android (APK), el SDK descarga la nueva compilación en segundo plano y solicita al evaluador que la instale cuando se completa la descarga. El SDK envía notificaciones de progreso de descarga al usuario mediante
NotificationManager
. También puede agregar su propio indicador de progreso adjuntando un controladoronProgressUpdate
a la tareaupdateIfNewReleaseAvailable
.
Puede llamar updateIfNewReleaseAvailable
en cualquier punto de su aplicación. Por ejemplo, puedes llamar updateIfNewReleaseAvailable
durante el método onResume
de la actividad principal de la aplicación.
El siguiente ejemplo comprueba si el evaluador habilitó las alertas y tiene acceso a una nueva compilación. Si se cumplen estas condiciones, se muestra un cuadro de diálogo cuando la compilación está disponible para instalar:
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;
}
}
});
Configuración avanzada
Configuración de inicio de sesión avanzada
Los métodos signInTester
e isTesterSignedIn
le brindan más flexibilidad para personalizar la experiencia de inicio de sesión del evaluador, de modo que la experiencia del evaluador pueda coincidir mejor con la apariencia de su aplicación.
El siguiente ejemplo comprueba si el evaluador ya ha iniciado sesión en su cuenta de evaluador de App Distribution. Esto le permite elegir mostrar su interfaz de usuario (UI) de inicio de sesión solo a los evaluadores que aún no han iniciado sesión. Después de que el evaluador inicie sesión, puede llamar a updateIfNewReleaseAvailable
para verificar si tiene acceso a una nueva compilación.
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.
});
}
Desde su interfaz de usuario de inicio de sesión, cuando el evaluador decida continuar, llame 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.
});
Configuración de actualización avanzada
Los métodos checkForNewRelease
y updateApp
le brindan más flexibilidad para personalizar cuándo se le solicita al probador que actualice. También puede personalizar el cuadro de diálogo de actualización prediseñado y el indicador de progreso de descarga para que coincidan mejor con la apariencia de su aplicación.
Tenga en cuenta que updateApp
no proporciona indicación del progreso de la descarga. Esto significa que debe implementar su propia indicación de progreso mediante NotificationManager
, algún tipo de visualización de estado en la aplicación o algún otro enfoque.
El siguiente ejemplo comprueba si hay una nueva versión disponible y luego muestra una interfaz de usuario personalizada. Antes de llamar a checkForNewRelease
y updateApp
, asegúrese de que el evaluador haya iniciado sesión mediante la configuración de inicio de sesión avanzada .
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.
});
Cuando el evaluador elija continuar con la actualización desde su interfaz de usuario de actualización, llame updateApp()
:
Kotlin+KTX
firebaseAppDistribution.updateApp()
.addOnProgressListener { updateState ->
// Use updateState to show update progress.
}
Java
firebaseAppDistribution.updateApp()
.addOnProgressListener(updateState -> {
// Use updateState to show update progress.
});
Paso 4 : cree y pruebe su implementación
Compile su aplicación y pruebe su implementación distribuyéndola a los evaluadores mediante Firebase console.
Visita la guía de solución de problemas de distribución de aplicaciones para obtener ayuda con problemas comunes, como:
- El probador no recibe alertas en la aplicación
- Se le solicita al evaluador que inicie sesión en Google más de una vez