1. Descripción general
Te damos la bienvenida al codelab sobre la integración del SDK de Firebase App Distribution en tu app para iOS. En este codelab, agregarás el SDK 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 tus 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 verificadores activos
- Cómo integrar el SDK de App Distribution para iOS 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 únicas
Requisitos
- Xcode 12 (o una versión posterior)
- CocoaPods 1.9.1 (o una versión posterior)
- Una cuenta de desarrollador de Apple para la distribución ad hoc
- Un dispositivo iOS físico para realizar pruebas (La app del simulador de iOS funcionará para la mayor parte del codelab, pero los simuladores no pueden descargar versiones).
¿Cómo usarás este instructivo?
¿Cómo calificarías tu experiencia con la compilación de apps para iOS?
2. Crea un proyecto en Firebase console
Agrega un proyecto de Firebase nuevo
- Accede a Firebase.
- En Firebase console, haz clic en Agregar proyecto y, luego, asígnale el nombre "Firebase Codelab" al proyecto.
No es necesario que habilites Google Analytics en este proyecto.
- Haz clic en Crear proyecto.
Agrega la app a Firebase
Sigue la documentación para registrar tu app en Firebase. Usa "com.google.firebase.codelab.AppDistribution.<your_name>" como el ID del paquete de iOS.
Cuando se te solicite, descarga el archivo GoogleService-Info.plist
de tu proyecto. La necesitarás más adelante.
3. Obtén el proyecto de muestra
Descargue el código
Comienza por clonar el proyecto de muestra.
git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git
Si no tienes instalado git, también puedes descargar el proyecto de ejemplo desde su página de GitHub o haciendo clic en este vínculo.
Descarga las dependencias y abre el proyecto en Xcode
- Abre el archivo Podfile en el mismo directorio.
cd firebase-appdistribution-ios/start Open Podfile
- Agrega la siguiente línea a tu Podfile:
Podfile
pod 'Firebase/AppDistribution'
Ejecuta pod update
en el directorio del proyecto y abre el proyecto en Xcode.
pod install --repo-update xed .
Actualiza el identificador del paquete para que coincida con tu app de Firebase
En el menú de la izquierda, haz doble clic en AppDistributionExample. Luego, busca la pestaña General y cambia el identificador del paquete para que coincida con el de tu app de Firebase, que se encuentra en la configuración del proyecto. Debería ser "com.google.firebase.codelab.AppDistribution.<your_name>".
Agrega Firebase a tu app
Busca el archivo GoogleService-Info.plist
que descargaste antes en tu sistema de archivos y arrástralo a la raíz del proyecto de Xcode. También puedes descargar este archivo en cualquier momento desde la página de configuración de tu proyecto.
En tu archivo AppDistributionExample/AppDelegate.swift
, importa Firebase en la parte superior del archivo.
AppDistributionExample/AppDelegate.swift
import Firebase
En el método didFinishLaunchingWithOptions
, agrega una llamada para configurar Firebase.
AppDistributionExample/AppDelegate.swift
FirebaseApp.configure()
4. Configura alertas de compilación nuevas en la app con el SDK de App Distribution
En este paso, agregarás el SDK de 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 proyecto "Firebase Codelab" (en la consola de Google Cloud). Deberás 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 App Distribution ofrece dos formas de configurar las alertas de compilación en la app para los verificadores: una configuración de alerta básica, que incluye un diálogo de acceso compilado previamente que se mostrará a los verificadores, y una configuración de alerta avanzada, con la que puedes personalizar tu interfaz de usuario (IU).
Comenzaremos con la configuración básica de las alertas. Puedes usar checkForUpdate
para mostrar un diálogo de alerta de habilitación compilado previamente a los verificadores que aún no activaron las alertas y, luego, comprobar si hay compilaciones nuevas disponibles. Los verificadores habilitan las alertas accediendo 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, muestra un diálogo prediseñado que le solicita que acceda a App Distribution con su Cuenta de Google.
La habilitación de alertas es un proceso único en el dispositivo de prueba, el cual persiste en todas las actualizaciones de tu app. Las alertas seguirán habilitadas en el dispositivo de prueba hasta que se desinstale la app o se llame al método signOutTester
. Consulta la documentación de referencia del método ( Swift o Objective-C) para obtener más información.
- Busca compilaciones disponibles recientemente para que las instale el verificador. Devuelve un objeto release o un error.
Puedes incluir checkForUpdate
en tu app cuando quieras. Por ejemplo, puedes pedirles a los verificadores que instalen nuevas compilaciones disponibles cuando se inicie la app. Para hacerlo, incluye checkForUpdate en el viewDidAppear del UIViewController.
En tu archivo AppDistributionViewController.swift
, importa Firebase en la parte superior del archivo.
AppDistributionViewController.swift
import Firebase
Abre AppDistributionExample/AppDistributionViewController.swift y copia líneas en el método viewDidAppear
de la siguiente manera:
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
checkForUpdate()
}
Ahora, implementemos el método checkForUpdate().
AppDistributionViewController.swift
private func checkForUpdate() {
AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
var uiAlert: UIAlertController
if error != nil {
uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
} else if release == nil {
uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
} else {
guard let release = release else { return }
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
_ in
UIApplication.shared.open(release.downloadURL)
})
uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
_ in
})
}
self.present(uiAlert, animated: true, completion: nil)
})
}
5. Compila tu app e invita a verificadores a descargarla
En este paso, compilarás tu app y probarás tu implementación distribuyendo la compilación a los verificadores con Firebase console.
Compila tu app
Cuando estés listo para distribuir una versión previa al lanzamiento de tu app a los verificadores, selecciona "Any iOS Device (arm64)" como destino de compilación y Product->Archive. Una vez que se cree el archivo, compila una distribución firmada con el perfil de distribución de desarrollo.
Cuando la compilación finalice, esta guardará un archivo IPA y algunos archivos de registro en la carpeta que especifiques. Distribuye el archivo IPA a tus verificadores como se indica en los siguientes pasos.
Si tienes problemas para compilar tu app, consulta la documentación de firma de código de Apple para conocer los pasos de solución de problemas.
Distribuye tu app a los verificadores
Para distribuir tu app a los verificadores, sube el archivo IPA 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.
- Presiona Comenzar.
- En la página Versiones, selecciona la app que quieres distribuir en el menú desplegable.
- Arrastra el archivo IPA a la consola para subirlo.
- Cuando se complete la carga, 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. Consulta Administra verificadores para obtener más información sobre cómo crear grupos de verificadores.
- Haz clic en Distribuir para que la compilación esté disponible para los verificadores.
Agrega tu cuenta como verificador de la versión
En Firebase console, ahora puedes ver los verificadores que agregaste en la versión de tu app.
Como incluiste tu dirección de correo electrónico, recibirás un correo electrónico de Firebase App Distribution en el que se te invitará a probar la app. Ahora eres el primer verificador. Continúa con la siguiente sección para prepararte como verificador en tu dispositivo de prueba.
Registra tu dispositivo de prueba
Primero, deberás registrar tu dispositivo de prueba para descargar y probar una versión Ad Hoc.
- En tu dispositivo de prueba iOS, abre el correo electrónico que te envió Firebase App Distribution y presiona el vínculo Get Started. Asegúrate de abrir el vínculo en Safari.
- En la app web para verificadores de Firebase App Distribution que aparece, accede con tu Cuenta de Google y presiona Aceptar invitación.
Ahora verás el lanzamiento al que se te invitó.
- Presiona Registrar dispositivo para compartir tu UDID con Firebase y, así, poder actualizar el perfil de aprovisionamiento de tu app más adelante.
- Sigue las instrucciones y ve a la configuración para descargar el perfil y compartir tu UDID.
Ahora, cuando vuelvas a App Distribution, la versión aparecerá como "Dispositivo registrado":
Ahora se compartió el UDID del verificador con el desarrollador. Ahora, el desarrollador debe compilar una nueva versión de la app para el verificador.
Cómo ver la información de los verificadores en la consola
De vuelta en la vista del desarrollador en Firebase console, el verificador aparecerá como "Aceptado" en la versión:
Luego, también recibirás un correo electrónico como desarrollador si el dispositivo que usa el usuario aún no está incluido en el perfil de aprovisionamiento. Recibirás una notificación sobre el nuevo UDID que debes agregar. También tienes la opción de exportar todos los UDID como un archivo de texto.
- Para exportar todos los UDID, abre la pestaña Verificadores y grupos.
- Haz clic en "Exportar UDIDs de Apple".
El archivo debe contener el UDID de tu dispositivo de prueba.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
Cuando recibas uno de estos correos, actualiza tu perfil de aprovisionamiento con el UDID y distribuye una compilación nueva a los verificadores siguiendo estos pasos:
- Agrega los dispositivos al portal para desarrolladores de Apple.
- Opción 1: Importa los UDID del dispositivo como un archivo CSV. En la pestaña Verificadores y grupos del panel de App Distribution, selecciona Todos los verificadores y, luego, haz clic en Exportar UDIDs de Apple para descargar un archivo CSV. Luego, importa el archivo a tu cuenta de desarrollador de Apple con la opción Register Multiple Devices. Consulta la documentación de Apple para obtener más información. Ten en cuenta que tu cuenta de desarrollador de Apple solo te permite importar una cantidad limitada de dispositivos por año.
- Opción 2: Recopila e ingresa los UDID por correo electrónico. En la página Add Devices del portal para desarrolladores de Apple, registra el nuevo UDID especificado en el correo electrónico que recibiste.
- Agrega los dispositivos registrados a tu perfil de aprovisionamiento.
- Descarga el perfil de aprovisionamiento y úsalo para volver a compilar tu app. Si quieres volver a compilarla solo para actualizar los dispositivos registrados, no actualices el número ni la versión de compilación.
- Redistribuye tu app desde Firebase console o la CLI. Si ya distribuiste una compilación con el mismo número y versión de compilación, solo los usuarios de dispositivos registrados recientemente recibirán las notificaciones por correo electrónico.
Descarga la versión del dispositivo de prueba
Ahora la versión tiene el UDID del dispositivo de prueba, por lo que el dispositivo de prueba puede descargar e instalar la app. App Distribution envía un correo electrónico a los verificadores cuando se agrega su UDID a una versión nueva.
- En el dispositivo de prueba, vuelve a la app web para verificadores de App Distribution usando el vínculo del correo electrónico o el ícono de la pantalla principal del dispositivo.
Cuando navegues a la app del codelab del UDID, verás que la versión está lista para descargarse.
- Si usas un dispositivo físico, presiona Descargar y, luego, instala y ejecuta la app.
- Cuando se inicie la app, se te pedirá que habilites las alertas de versiones nuevas. Selecciona "Activar".
- Luego, se te pedirá que accedas. Haz clic en "Continuar".
- Accede con tu cuenta de verificador.
- Volverás a la app. No tendrás que acceder ni aceptar alertas la próxima vez que ejecutes la app.
Distribuye una actualización a los verificadores
- Actualiza el número de compilación a "2".
- Selecciona "Any iOS Device (arm64)" como destino de compilación y Product->Archive. Una vez que se genere el archivo, crea una distribución firmada con el perfil de distribución de desarrollo.
- Cuando la compilación finalice, esta guardará un archivo IPA y algunos archivos de registro en la carpeta que especifiques. Sube este nuevo archivo IPA a Firebase console, vuelve a agregar tu correo electrónico como verificador y distribuye la app.
Alertas de compilación de prueba
- Asegúrate de haber cerrado la app si estaba abierta. Reinicia la app.
- Cuando se reinicie la app, deberías recibir una alerta de "Nueva versión disponible".
- Haz clic en "Actualizar" para recibir la versión más reciente.
- En la siguiente pantalla, haz clic en "Instalar".
- ¡Felicitaciones! Pudiste actualizar tu app con las alertas integradas.
6. Personaliza el acceso de los verificadores
Los métodos signInTester/signOutTester y isTesterSignedIn te ofrecen más flexibilidad para personalizar la experiencia de acceso de tus verificadores a fin de que coincida mejor con el aspecto y el estilo de tu app.
En el siguiente ejemplo, se comprueba si el verificador ya accedió a su cuenta 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.
Inhabilitaremos la verificación automática de actualizaciones en viewDidAppear comentando la llamada a checkForUpdate().
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
// checkForUpdate()
}
En su lugar, llamemos a checkForUpdate() en checkForUpdateButtonClicked().
@objc func checkForUpdateButtonClicked() {
checkForUpdate()
}
Ahora, implementemos nuestro método signInOutButtonClicked(), que permitirá al usuario acceder si no lo hizo o salir si ya accedió.
AppDistributionViewController.swift
@objc func signInOutButtonClicked() {
if isTesterSignedIn() {
AppDistribution.appDistribution().signOutTester()
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
AppDistribution.appDistribution().signInTester(completion: { error in
if error == nil {
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
_ in
})
self.present(uiAlert, animated: true, completion: nil)
}
})
}
}
Por último, implementemos el método isTesterSignedIn.
AppDistributionViewController.swift
private func isTesterSignedIn() -> Bool {
return AppDistribution.appDistribution().isTesterSignedIn
}
Compila y prueba tu implementación
7. ¡Felicitaciones!
Compilaste la función "visualización de alertas integradas en la app" en una app con el SDK de Firebase App Distribution para iOS.
Temas abordados
- Firebase App Distribution
- SDK de Firebase App Distribution New Alerts para iOS
Próximos pasos
Más información
¿Tienes alguna pregunta?
- Stackoverflow "firebase-app-distribution"
- Canal de Slack de la comunidad de Firebase #app-distribution
Informa problemas