1. Descripción general
Te damos la bienvenida al codelab Cómo integrar el SDK de Firebase App Distribution en tu app para Android. En este codelab, agregarás el SDK de Android de App Distribution a tu app para mostrar alertas en la app a los verificadores cuando haya nuevas compilaciones disponibles para descargar. Aprenderás a usar una configuración básica y una personalizada para que los verificadores accedan y reciban actualizaciones. Luego, enviarás una nueva versión a App Distribution y activarás una alerta de compilación nueva directamente en la app.
Qué aprenderás
- Cómo usar App Distribution para distribuir una app previa al lanzamiento a los verificadores
- Cómo integrar el SDK de Android para App Distribution en tu app
- Cómo alertar a un verificador cuando hay una nueva compilación previa al lanzamiento lista para instalar
- Cómo personalizar el SDK para que se adapte a tus necesidades de pruebas
Requisitos
- La versión más reciente de Android Studio
- Código de muestra.
- Un dispositivo de prueba con Android 4.4 o versiones posteriores y los Servicios de Google Play 9.8 o versiones posteriores, o un emulador con Servicios de Google Play 9.8 o versiones posteriores
- Si usas un dispositivo, un cable de conexión.
¿Cómo usarás este instructivo?
¿Cómo calificarías tu experiencia cuando compilas apps para Android?
2. Obtén el código de muestra
Clona el repositorio de GitHub desde la línea de comandos.
$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git
Si no tienes Git instalado, también puedes descargar el proyecto de muestra desde su página de GitHub o haciendo clic en este vínculo.
3. Importa la app de partida
En Android Studio, selecciona el directorio codelab-appdistribution-android/start
( ) de la descarga de código de muestra (File > Open > .../codelab-appdistribution-android/start).
Ahora deberías tener abierto el proyecto de inicio en Android Studio.
4. Crea un proyecto de Firebase console
Agrega un proyecto de Firebase nuevo
- Abre Firebase console.
- Selecciona Agregar proyecto y, luego, asígnale el nombre "Firebase Codelab".
No es necesario que habilites Google Analytics en este proyecto.
- Haz clic en Crear proyecto.
Cómo agregar una app a Firebase
Registra tu app en Firebase. Usa "com.google.firebase.appdistributioncodelab" como nombre del paquete.
Agrega el archivo google-services.json a tu app
Después de agregar el nombre del paquete y seleccionar Registrar, sigue estos pasos para agregar google-services.json a tu app:
- Haz clic en Descargar google-services.json para obtener el archivo de configuración de Firebase para Android.
- Copia el archivo google-services.json en el directorio
app
de tu proyecto. - Una vez que se descargue el archivo, puedes omitir los siguientes pasos que aparecen en la consola (ya se realizaron automáticamente en el proyecto build-android-start).
Actualiza el ID de aplicación para que coincida con tu app de Firebase
- En el menú de la izquierda (pestaña Project), asegúrate de estar en la sección "Android". Visualiza y ubica "Gradle Scripts" y abre el archivo Gradle (generalmente
app/build.gradle.kts
) de tu módulo (al nivel de la app). - Cambia la propiedad
applicationId
para que coincida con el ID de aplicación de tu app de Firebase. Debe ser "com.google.firebase.appdistributioncodelab".
Cómo sincronizar tu proyecto con archivos de Gradle
Para asegurarte de que todas las dependencias estén disponibles para tu app, sincroniza tu proyecto con los archivos de Gradle seleccionando File > Sync Project with Gradle Files en la barra de herramientas de Android Studio.
5. Configura alertas de compilación nuevas en la app con el SDK de Android para App Distribution
En este paso, agregarás el SDK de Android para Firebase App Distribution a tu app y mostrarás alertas en la app a tus verificadores cuando haya nuevas compilaciones de tu app disponibles para instalar. Para ello, asegúrate de haber habilitado la API de Firebase App Testers para tu "Codelab de Firebase" proyecto (en la consola de Google Cloud). Debes acceder con la misma cuenta y seleccionar el proyecto correcto en el menú desplegable de la parte superior.
Configura alertas en la app
El SDK de Android para App Distribution proporciona dos formas de configurar alertas de compilación en la app para los verificadores:
- Una configuración básica de alertas, que incluye un diálogo compilado previamente para mostrar a los verificadores.
- Una configuración de alertas avanzada, que te permite personalizar tu interfaz de usuario (IU).
Comenzaremos con la configuración básica de alertas. Puedes usar updateIfNewReleaseAvailable
para mostrar un diálogo de habilitación de alertas compilado previamente a los verificadores que aún no las hayan habilitado y, luego, verificar si hay una compilación nueva disponible. Para habilitar las alertas, los verificadores acceden a una cuenta que tiene acceso a la app en App Distribution. Cuando se llama al método, este invoca la siguiente secuencia:
- Comprueba si un verificador habilitó las alertas. De lo contrario, el método muestra un diálogo compilado previamente en el que se les pide a los verificadores que accedan a App Distribution con su Cuenta de Google.
La habilitación de las alertas es un proceso único en el dispositivo de prueba que persiste en todas las actualizaciones de la app. Las alertas permanecerán habilitadas en el dispositivo de prueba hasta que se desinstale la app o se llame al método signOutTester
.
- Busca compilaciones disponibles recientemente para que las instale el verificador.
- Muestra una alerta compilada previamente que le solicita al verificador que descargue la versión más reciente.
- Verifica el nuevo tipo de compilación antes de continuar con la actualización:
- Si la nueva compilación es un App Bundle (AAB), redirecciona al verificador a Play Store para completar el proceso de actualización.
- Si la compilación nueva es un APK, el SDK la descarga en segundo plano y le solicita al verificador que la instale cuando finalice la descarga. El SDK envía notificaciones del progreso de descarga al usuario mediante
NotificationManager.
. Puedes agregar tu propio indicador de progreso adjuntando un controladoronProgressUpdate
a la tareaupdateIfNewReleaseAvailable
.
Puedes llamar a updateIfNewReleaseAvailable()
en cualquier momento desde tu app. Por ejemplo, puedes llamar a updateIfNewReleaseAvailable()
durante el método onResume()
de MainActivity:
Abre MainActivity.kt y crea el método onResume()
de la siguiente manera:
MainActivity.kt
override fun onResume() {
super.onResume()
checkForUpdate()
}
Ahora implementemos el método checkForUpdate()
.
MainActivity.kt
private fun checkForUpdate() {
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
if (e is FirebaseAppDistributionException) {
// Handle exception.
}
}
}
6. Compila e invita a verificadores para que descarguen tu app
En este paso, distribuirás la compilación a los verificadores con Firebase console para compilar la app y probar la implementación.
Crea tu app
Cuando estés listo para distribuir una versión previa al lanzamiento de tu app a los verificadores, compila el APK usando el proceso normal. Debes firmar el APK con tu clave de depuración o de firma de la app.
Cómo distribuir tu app a los verificadores
Para distribuir tu app a los verificadores, sube el archivo APK con Firebase console como se indica a continuación:
- Abre la página App Distribution de Firebase console. Selecciona tu proyecto de Firebase cuando se te solicite.
- En la página Versiones, selecciona la app que quieres distribuir desde el menú desplegable.
- Haz clic en Comenzar.
- Arrastra el archivo APK a la consola para subirlo.
- Cuando la carga finalice, especifica los grupos de verificadores y los verificadores individuales que quieres que reciban la compilación. (Agrega tu correo electrónico para recibir la invitación). Luego, agrega las notas de la versión de la compilación. Si quieres obtener más información para crear grupos de verificadores, consulta Cómo agregar y quitar verificadores.
- Haz clic en Distribuir a fin de hacer que la compilación esté disponible para los verificadores.
En Firebase console, ahora puedes ver los verificadores que agregaste en la versión de tu app.
Dado que incluiste tu dirección de correo electrónico, recibirás un mensaje de Firebase App Distribution en el que se te invitará a probar la app. Ya eres el primer verificador. Sigue las instrucciones que aparecen en Acepta la invitación para prepararte como verificador en tu dispositivo de prueba.
Aceptar la invitación
Primero, debes aceptar la invitación para descargar y probar la versión.
- En tu dispositivo Android de prueba, abre el correo electrónico que te envió Firebase App Distribution y presiona Comenzar.
- En la app web de verificador de Firebase App Distribution que aparece, accede con tu Cuenta de Google y presiona Aceptar invitación. Ahora puedes ver la versión que te invitaron a probar.
Descarga la versión del dispositivo de prueba
Cuando navegas a la app del codelab AppDistribution, puedes ver que la versión está lista para descargar.
- Presiona Descargar y, luego, instala y ejecuta la app.
- Cuando se inicie la app, te solicitará que habilites nuevas alertas de compilación. Presiona Activar.
- Accede con tu cuenta de verificador.
Volverás a la app. La próxima vez que la ejecutes, no necesitarás acceder ni aceptar alertas.
Cómo distribuir una actualización a los verificadores
- Actualiza versionName a "1.1" y versionCode a 2 en el archivo Gradle de tu módulo (nivel de app) (por lo general, app/build.gradle).
- Compila el APK con el proceso normal. Debes firmar el APK con tu clave de depuración o de firma de la app.
- Sube este nuevo APK a Firebase console, vuelve a agregar tu correo electrónico como verificador y haz clic en Distribuir.
Cómo probar alertas de compilación
- Asegúrate de haber cerrado la app si estaba abierta.
- Reinicia la app.
- Cuando se reinicie la app, recibirás una alerta de Nueva versión disponible.
- Para recibir la versión más reciente, haz clic en Actualizar.
- Si se te solicita, elige la opción para habilitar las instalaciones de fuentes desconocidas.
- En la siguiente pantalla, haz clic en Install (o Update).
- ¡Felicitaciones! Pudiste actualizar tu app con las alertas integradas.
7. Personaliza el acceso del verificador
Los métodos signInTester/signOutTester y isTesterSignedIn te ofrecen más flexibilidad para personalizar la experiencia de acceso de los verificadores a fin de que coincida mejor con el estilo de la app.
En el siguiente ejemplo, se comprueba si el verificador ya accedió a su cuenta de verificador de Firebase App Distribution, de modo que puedas mostrar la IU de acceso solo a los verificadores que aún no accedieron. Después de que el verificador haya accedido, puedes llamar a checkForUpdate para comprobar si tiene acceso a una compilación nueva.
Inhabilitamos la comprobación automática de actualizaciones en onResume marcando como comentario la llamada checkForUpdate().
MainActivity.kt
override fun onResume() {
super.onResume()
//checkForupdate()
}
En su lugar, checkForUpdate() ya se agregó en el OnClickListener de updatebutton.
Ahora, implementemos nuestro método signIn(), que hará que el usuario acceda si sale de su cuenta o que lo hará si ya accedió.
MainActivity.kt
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
Por último, implementemos el método isTesterSignedIn.
MainActivity.kt
private fun isTesterSignedIn() : Boolean {
return firebaseAppDistribution.isTesterSignedIn
}
Compila y prueba tu implementación
8. ¡Felicitaciones!
Compilaste la función "Mostrar alertas en la app" en una app con el SDK de Android para Firebase App Distribution.
Temas abordados
- Firebase App Distribution
- SDK de Android para las alertas nuevas de Firebase App Distribution
Próximos pasos
Más información
¿Tienes alguna pregunta?
- Stack Overflow “firebase-app-distribution”
- Canal de Slack para la comunidad de Firebase #app-distribution
Informar problemas