Alerta a los verificadores sobre las nuevas versiones de tu app con el SDK de Firebase App Distribution para iOS: Codelab

1. Descripción general

Te damos la bienvenida al codelab sobre cómo integrar el 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 a fin de lograr que los verificadores accedan para recibir actualizaciones. Luego, enviarás una versión nueva a App Distribution y activarás una alerta de compilación nueva directamente en la app.

Aprendizajes esperados

  • 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 haya una nueva compilación previa al lanzamiento lista para instalar
  • Cómo personalizar el SDK para que se adapte a tus necesidades de prueba ú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 de simulador de iOS funcionará para la mayor parte del codelab, pero los simuladores no pueden descargar versiones).

¿Cómo usarás este instructivo?

Leer Leer y completar los ejercicios

¿Cómo calificarías tu experiencia con la compilación de apps para iOS?

Principiante Intermedio Avanzado

2. Crea un proyecto de Firebase console

Agregar nuevo proyecto de Firebase

  1. Accede a Firebase.
  2. En Firebase console, haz clic en Agregar proyecto y, luego, asígnale el nombre “Codelab de Firebase”.

No es necesario que habilites Google Analytics en este proyecto.

  1. Haz clic en Crear proyecto.

Agregar app a Firebase

Sigue la documentación para registrar tu app en Firebase. Usa "com.google.firebase.codelab.AppDistribution.<tu_nombre>" como el ID del paquete de iOS.

Cuando se te solicite, descarga el archivo GoogleService-Info.plist de tu proyecto. Lo 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 Git instalado, también puedes descargar el proyecto de muestra desde su página de GitHub o haciendo clic en este vínculo.

Descarga las dependencias y abre el proyecto en Xcode

  1. Abre el Podfile en el mismo directorio.
cd firebase-appdistribution-ios/start
Open Podfile
  1. 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 de paquete para que coincida con el de tu app de Firebase

En el menú de la izquierda, haz doble clic en AppDistributionExample. Luego, ubica la pestaña General y cambia el identificador de paquete para que coincida con el identificador de paquete de tu app de Firebase, que se encuentra en la configuración del proyecto. Debe ser "com.google.firebase.codelab.AppDistribution.<tu_nombre>".

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 del proyecto.

3cf9290805e7fdab.png

En el archivo AppDistributionExample/AppDelegate.swift, importa Firebase en la parte superior del archivo.

AppDistributionExample/AppDelegate.swift.

import Firebase

Y, 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 habilitar la API de Firebase App Testers en tu proyecto "Codelab de Firebase" (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.

Cómo configurar alertas en la app

El SDK de App Distribution proporciona dos formas de configurar alertas de compilación en la app para tus verificadores: una configuración de alertas básica, que incluye un diálogo de acceso compilado previamente para mostrar a los verificadores, y una configuración avanzada de alertas, que te permite personalizar tu propia interfaz de usuario (IU).

Comenzaremos con la configuración básica de alertas. Puedes usar checkForUpdate para mostrar un diálogo de alerta de habilitación compilado previamente a los verificadores que aún no hayan habilitado las alertas y, luego, comprobar si hay una compilación nueva disponible. Para habilitar las alertas, los verificadores deben acceder a una cuenta que tenga acceso a la app en App Distribution. Cuando se llama al método, este invoca la siguiente secuencia:

  1. Comprueba si un verificador habilitó las alertas. De lo contrario, se muestra un diálogo compilado previamente que le indica que acceda a App Distribution con su Cuenta de Google.

La habilitación de alertas es un proceso único en el dispositivo de prueba que persiste en todas las actualizaciones de tu app. Las alertas permanecerá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 ( Objective-C o Swift) para obtener más información.

  1. Busca compilaciones disponibles recientemente para que las instale el verificador. Muestra un objeto de versión o un error.

Puedes incluir checkForUpdate en tu app en cualquier momento. Por ejemplo, puedes pedirles a los verificadores que instalen compilaciones disponibles recientemente al inicio si incluyes checkForUpdate en view DidAppear del UIViewController.

En el 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. Crea verificadores 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.

Cómo compilar tu app

Cuando tengas todo listo para distribuir una versión previa al lanzamiento de tu app a los verificadores, selecciona "Any iOS Device (arm64)" como destino de la compilación y Product->Archive. Una vez creado el archivo, compila una distribución firmada con el perfil de distribución de desarrollo.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

Cuando se completa la compilación, esta guarda 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 los documentos de firma de código de Apple para conocer los pasos para solucionarlos.

Distribuye tu app a los verificadores

Para distribuir tu app a los verificadores, sube el archivo IPA con Firebase console:

  1. Abre la página App Distribution de Firebase console. Selecciona tu proyecto de Firebase cuando se te solicite.
  2. Presiona Comenzar.

e4671bd304ecfe47.png

  1. En la página Lanzamientos, selecciona la app que quieres distribuir desde el menú desplegable.

8a3da2939b9746f4.png

  1. Arrastra el archivo IPA a la consola para subirlo.
  2. 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.

de63e3c3c64f909e.png

  1. Haz clic en Distribuir a fin de que la compilación esté disponible para los verificadores.

b6e75dc216fc3731.png

Cómo agregarte como verificador de la versión

En Firebase console, ahora puedes ver los verificadores que agregaste a la versión de tu app.

eb61c6be96ff3a11.png

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. 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

Para descargar y probar una versión ad hoc, primero deberás registrar tu dispositivo de prueba.

  1. En tu dispositivo de prueba iOS, abre el correo electrónico enviado desde Firebase App Distribution y presiona el vínculo Comenzar. Asegúrate de abrir el vínculo en Safari.
  2. En la app web de verificadores de Firebase App Distribution que aparece, accede con tu Cuenta de Google y presiona Aceptar invitación.

4381b5b7ef944620.png

Ahora verás la versión a la que te invitaron.

  1. Presiona Registrar dispositivo para compartir tu UDID con Firebase y actualizar el perfil de aprovisionamiento de tu app más tarde.

fd141215e54a938d.png

  1. Sigue las instrucciones y ve a la configuración para descargar el perfil y compartir el UDID.

Ahora, cuando vuelvas a App Distribution, la versión estará marcada como “Dispositivo registrado”:

fe93d649dfa25877.png

El UDID del verificador ahora se compartió con el desarrollador. Ahora depende del desarrollador compilar una nueva versión de la app para el verificador.

Consulta la información del verificador en la consola

En la vista del desarrollador de Firebase console, el verificador aparecerá como “Aceptado” en la versión:

1bef6f182c1c58f9.png

Luego, también recibirás un correo electrónico como desarrollador si el dispositivo que usa aún no está incluido en el perfil de aprovisionamiento. Esta acción te notificará sobre el UDID nuevo que debes agregar. También tienes la opción de exportar todos los UDID como archivo de texto.

  1. Para exportar todos los UDID, abre la pestaña Verificadores y grupos.

2745d49a6abc47fe.png

  1. Haz clic en “Exportar UDIDs de Apple”.

cb45477f8cc436ba.png

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:

  1. 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 presente que tu cuenta de desarrollador de Apple solo te permite importar una cantidad limitada de dispositivos por año.
  • Opción 2: Recopila y, luego, ingresa los UDID por correo electrónico. En la página Agregar dispositivos del portal para desarrolladores de Apple, registra el nuevo UDID especificado en el correo electrónico que recibiste.

ffb74294e68ee1c8.png

  1. Agrega los dispositivos registrados a tu perfil de aprovisionamiento.
  2. Descarga el perfil de aprovisionamiento y úsalo para volver a compilar tu app. Si estás volviendo a compilar solo para actualizar los dispositivos registrados, no actualices el número de compilación ni la versión.
  3. 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 desde el dispositivo de prueba

Ahora la versión tiene el UDID del dispositivo de prueba, de modo que este puede descargar e instalar la app. App Distribution envía un correo electrónico a los verificadores cuando se agrega su UDID a una nueva versión.

4049260bae2850b.png

  1. En el dispositivo de prueba, regresa a la app web de verificadores de App Distribution mediante el vínculo que se incluye en el correo electrónico o el ícono que se encuentra en la pantalla principal del dispositivo.

Cuando navegas a la app del codelab de UDID, puedes ver que la versión está lista para descargarse.

dad6d03b6ad78746.png

  1. Si estás en un dispositivo físico, presiona Descargar; luego, instala y ejecuta la app.
  2. Cuando se inicie la app, se te pedirá que habilites alertas de nuevas compilaciones. Selecciona "Activar".

6e3540a2900734e6.png

  1. Luego, se te pedirá que accedas a tu cuenta. Haz clic en "Continuar".

82d90d7935bfaea0.png

  1. Accede con tu cuenta de verificador.

18b3bvd1dbd7

  1. Se te redirigirá a la app. No tendrás que acceder ni aceptar alertas la próxima vez que ejecutes la app.

815d6757eb5f6327.png

Distribuye una actualización a tus verificadores

  1. Actualiza tu número de compilación a "2".

861aa63ebbc6ec54.png

  1. Selecciona "Cualquier dispositivo iOS (arm64)" como destino de la compilación y, luego, Product->Archive. Una vez que se genere el archivo, compila una distribución firmada con el perfil de distribución de desarrollo.
  2. Cuando se completa la compilación, esta guarda un archivo IPA y algunos archivos de registro en la carpeta que especifiques. Sube este IPA nuevo a Firebase console, vuelve a agregar tu correo electrónico como verificador y vuelve a distribuirlo.

b6e75dc216fc3731.png

Alertas de compilaciones de prueba

  1. Asegúrate de haber cerrado la app si estaba abierta. Reinicia la app.
  2. Cuando se reinicie la app, deberías recibir una alerta de "Nueva versión disponible".

3bd532992df458e6.png

  1. Haz clic en "Actualizar" para obtener la versión más reciente.
  2. Haz clic en "Instalar" en la siguiente pantalla.

3a761d8fa4b79d33.png

  1. ¡Felicitaciones! Pudiste actualizar tu app con las alertas integradas.

6. Personaliza el acceso del verificador

Los métodos isTesterSignedIn y signInTester/signOutTester te brindan más flexibilidad para personalizar la experiencia de acceso de tus verificadores para que coincida mejor con la apariencia de tu app.

En el siguiente ejemplo, se verifica si el verificador ya accedió a su cuenta de Firebase App Distribution, de modo que puedes elegir mostrar la IU de acceso solo a los verificadores que aún no lo hicieron. Una vez que el verificador haya accedido, podrás llamar a checkForUpdate para comprobar si tiene acceso a una compilación nueva.

Para inhabilitar la comprobación de actualizaciones automáticamente en view instancia, marcará como comentario 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 el método signInOutButtonClicked() que hará que el usuario acceda si salió de la cuenta o cerrará la sesión del usuario 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 isTesterSignedI.

AppDistributionViewController.swift.

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

Compila y prueba tu implementación

7. ¡Felicitaciones!

Integraste la función de “visualización de alertas en la app” en una app con el SDK de iOS de Firebase App Distribution.

Temas abordados

  • Firebase App Distribution
  • SDK de iOS de alertas nuevas de Firebase App Distribution

Próximos pasos

Más información

¿Tienes alguna pregunta?

Informar problemas