Distribuya sus versiones preliminares de iOS más rápido con App Distribution y fastlane

1. Antes de comenzar

4cddd34bd261cea0.png

En este codelab, aprenderá a usar Firebase App Distribution y su complemento Fastlane para distribuir una aplicación de iOS a los evaluadores, recopilar los UDID de los dispositivos de prueba y registrarlos en el perfil de aprovisionamiento de su aplicación, para que pueda obtener compilaciones ad hoc rápidamente en los evaluadores. ' manos.

lo que aprenderás

  • Cómo cargar y distribuir una aplicación iOS preliminar (Ad Hoc) a los evaluadores mediante Firebase App Distribution y fastlane .
  • Cómo registrarse como tester y descargar la aplicación distribuida en un dispositivo de prueba.
  • Cómo registrar rápidamente dispositivos de prueba exportando UDID de dispositivos de prueba con el complemento fastlane de App Distribution.
  • Cómo actualizar el perfil de aprovisionamiento de su aplicación y volver a cargarlo para su distribución.

Lo que necesitarás

  • Una cuenta de Google
  • Una máquina Apple con XCode 11.7+ instalado
  • Una aplicación iOS preliminar ad hoc integrada en Xcode
  • Una cuenta paga de desarrollador de Apple
  • Un dispositivo iOS físico para realizar pruebas.

La aplicación del simulador de iOS funcionará para la mayor parte del codelab, pero los simuladores no pueden descargar versiones.

Aún puede verificar que la configuración funcionó verificando que el botón "Descargar" aparezca en la aplicación web del probador de distribución de aplicaciones.

2. Comience

Configurar carril rápido

App Distribution se integra con fastlane para permitirle automatizar la distribución de versiones preliminares de su aplicación. App Distribution se integra con su configuración fastlane .

  1. Instalar y configurar fastlane .
  2. Ejecute fastlane init en el directorio raíz de su proyecto durante la instalación y elija "Configuración manual". Verá un subdirectorio llamado fastlane que contiene Fastfile , Appfile y Pluginfile , que usará para configurar fastlane .

Instale la CLI de Firebase

También necesitarás instalar Firebase CLI . Si está utilizando macOS o Linux, puede ejecutar el siguiente comando cURL:

curl -sL https://firebase.tools | bash

Si está utilizando Windows, lea las instrucciones de instalación para obtener un binario independiente o instalarlo mediante npm .

Una vez que hayas instalado la CLI, ejecutar firebase --version debería informar una versión de 12.0.0 o superior:

$ firebase --version
12.0.0

3. Crea tu aplicación con fastlane

Crea tu aplicación

  1. Establezca algunas variables globales para fastlane en su ./fastlane/Appfile. Incluye el ID de tu aplicación y tu ID de Apple:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
  1. Cree su primer carril y use la acción build_app de fastlane (también conocida como gym ) para crear su aplicación agregando lo siguiente a su ./fastlane/Fastfile :
default_platform(:ios)

lane :build do
    build_app(export_method: "ad-hoc")
end
  1. Firme su aplicación para su distribución.

Para este codelab, administrará su propia certificación y perfil usando get_certificates (también conocido como cert ), que genera certificados de firma localmente y almacena todo en su llavero macOS. Sin embargo, normalmente querrás utilizar la acción fastlane sync_code_signing action (también conocida como match ) para administrar de forma segura los certificados y perfiles de firma de código de tu equipo.

lane :build do
    get_certificates()
    build_app(export_method: "ad-hoc")
end
  1. Configure un perfil de aprovisionamiento para su aplicación mediante la acción get_provisioning_profile (también conocida como sigh ). Esto le permite compartir su aplicación con los evaluadores.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Opcional] Si nunca antes ha ejecutado su aplicación, ejecute el siguiente comando para crearla en la consola de desarrollador de Apple:

$ fastlane produce --skip_itc

  1. Finalmente, cree su aplicación ejecutando el carril.

Se le solicitará su ID de Apple, su contraseña (que se almacena en su llavero) y el ID del paquete de su aplicación.

$ fastlane build

Si tiene algún problema, consulte la guía de solución de problemas de fastlane .

4. Sube tu aplicación a Firebase

Ahora que ha creado su aplicación, está listo para cargarla en App Distribution.

Crear y configurar un proyecto de Firebase

  1. Inicia sesión en Firebase.
  2. En Firebase console, crea o agrega un nuevo proyecto y luego llámalo "UDID Export Codelab".

No es necesario habilitar Google Analytics para este proyecto.

  1. Haga clic en Crear proyecto .

Añade tu aplicación iOS al proyecto

  1. Haz clic en el ícono de iOS para crear una nueva aplicación de Firebase para iOS e ingresa el ID del paquete de tu aplicación.

9c26c130a6c42212.png

  1. Omita los siguientes pasos y luego haga clic en Continuar a la consola . Agregará SDK a su aplicación más adelante.

Su proyecto y aplicación ahora están disponibles en la página Descripción general del proyecto .

66f79cc8a97fa8e9.png

Habilitar distribución de aplicaciones

  1. En la sección Lanzamiento y supervisión, haga clic en Distribución de aplicaciones .
  2. Después de aceptar los términos, haga clic en "Comenzar" para habilitar la distribución de aplicaciones para su aplicación.

460213326c2784ae.png

Configurar una distribución en fastlane

  1. Ejecute el siguiente comando desde la raíz de su proyecto iOS para agregar App Distribution a su configuración de fastlane .

Si el comando le muestra una opción, seleccione Opción 3: RubyGems.org :

$ fastlane add_plugin firebase_app_distribution

  1. Confirme que el complemento esté instalado:

$ fastlane

El resultado debería mostrar fastlane-plugin-firebase_app_distribution en la lista de complementos instalados.

  1. Después de confirmar que el complemento está instalado, elija la opción 0 para cancelar.

Autentica tu proyecto de Firebase

Para usar el complemento fastlane , primero deberás autenticar tu proyecto de Firebase.

  1. Ejecute el siguiente comando para conectar la CLI a su cuenta de Google:

$ firebase login

  1. Cuando el comando imprima un enlace de autenticación, abra el enlace en un navegador.
  2. Cuando se le solicite, inicie sesión en su cuenta de Google y otorgue permiso para acceder a su proyecto de Firebase.

Distribuye tu aplicación

Ahora estás listo para distribuir tu aplicación.

  1. En la parte superior de su ./fastlane/Fastfile , defina una variable llamada firebase_app_id . Reemplace <your_app_id> con el ID de la aplicación Firebase para la aplicación que creó (esto se puede encontrar en la página de configuración del proyecto ).

Fastfile está escrito en Ruby, así que use la sintaxis de Ruby para definir variables.

firebase_app_id = "<your_app_id>"
  1. Agregue un nuevo carril llamado distribute que llame al carril de compilación y luego distribuya su aplicación mediante la acción firebase_app_distribution .
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end
  1. Ejecute el nuevo carril para crear su aplicación y crear una distribución.

$ fastlane distribute

En este punto, su Fastfile debería verse como el siguiente:

firebase_app_id = "<your Firebase app ID>"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
    )
end

Después de actualizar Firebase console, verás la nueva versión de tu aplicación.

c59dc1a94de3bf3c.png

5. Invita a los evaluadores a descargar tu aplicación

Cuando un evaluador acepta una invitación para probar una compilación ad hoc, se le solicita permiso para compartir su UDID. Si están de acuerdo, App Distribution recopila la información de su dispositivo y se lo notifica por correo electrónico. En esta sección, se agregará como tester para descargar y probar la aplicación que distribuyó.

Agréguese como tester al lanzamiento

  1. En firebase_app_id en la parte superior de su Fastfile, cree una variable para contener los evaluadores e incluya su propia dirección de correo electrónico, así como otras direcciones de correo electrónico opcionales que le gustaría probar.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
  1. Aplique el método Array#join de Ruby para convertir la matriz app_testers en una cadena separada por comas, que espera el parámetro testers . Luego, pase el resultado al parámetro testers de firebase_app_distribution.
lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end

En este punto, su Fastfile debería verse así:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end
  1. Corre el carril nuevamente.

$ fastlane distribute

Una vez que ejecute el carril, los evaluadores que agregó recibirán un correo electrónico de invitación de App Distribution notificándoles sobre la nueva versión disponible. En Firebase console, ahora puedes ver los testers que agregaste en la versión de tu aplicación.

2e0fc9603b868af8.png

Dado que incluyó su dirección de correo electrónico, recibirá un correo electrónico de Firebase App Distribution invitándolo a probar la aplicación. ¡Ahora eres el primer probador! Continúe con la sección siguiente para configurarlo como probador en su dispositivo de prueba.

Registre su dispositivo de prueba

Como tester, deberás iniciar sesión en Google en tu dispositivo de prueba para poder acceder a las versiones de aplicaciones que has sido invitado a probar. Debido a que su versión de prueba es una versión ad hoc, también deberá registrar su dispositivo de prueba instalando el perfil de Firebase. Posteriormente, podrá acceder a las versiones que estén disponibles para usted desde la aplicación web del probador de distribución de aplicaciones, utilizando el clip web que se agrega a la pantalla de inicio de su dispositivo.

  1. En su dispositivo de prueba iOS, abra el correo electrónico enviado desde Firebase App Distribution y toque el enlace Comenzar . Asegúrate de abrir el enlace en Safari.
  2. Ahora se encuentra en la aplicación web del probador de distribución de aplicaciones. En la página que aparece, inicia sesión con tu cuenta de Google y toca Aceptar invitación.

d833407de251b89f.png

  1. Ahora puedes ver los lanzamientos a los que has sido invitado. Toque Registrar dispositivo en una de las versiones.

fd141215e54a938d.png

  1. Cuando se le solicite, descargue el perfil de Firebase y luego instálelo en la aplicación Configuración.

La instalación del perfil le otorga a Firebase permiso para:

  • Registre el dispositivo de prueba recopilando su ID de dispositivo único (UDID).

Firebase envía a todos los propietarios y editores del proyecto de Firebase un correo electrónico que incluye el UDID del dispositivo de prueba.

  • Instale un clip web en la pantalla de inicio del dispositivo de prueba. El clip web abre la aplicación web del probador de distribución de aplicaciones, que le permite instalar y acceder a todas sus aplicaciones de prueba.

En la aplicación web del probador de distribución de aplicaciones, su dispositivo de prueba ahora está registrado para el lanzamiento de su aplicación.

fe93d649dfa25877.png

Ahora que has compartido el UDID de tu dispositivo de prueba con Firebase, puedes continuar como desarrollador. En la pestaña Probadores del panel de distribución de aplicaciones , la información de su probador ahora aparece debajo de la versión de su aplicación con el estado "Aceptado":

7b9f665a63a384cf.png

En la siguiente sección, agregará el UDID del dispositivo al perfil de aprovisionamiento de su aplicación y luego creará una versión de su aplicación que funcione con su dispositivo de prueba.

Exporte los UDID de su dispositivo de prueba

Como desarrollador, recibirás un correo electrónico de Firebase que contiene el UDID del dispositivo de prueba. Como opción, App Distribution facilita la recopilación de varios UDID de dispositivos nuevos a la vez al permitirle exportarlos directamente desde Firebase console como un archivo de texto sin formato.

  1. Para exportar todos los UDID, abra la pestaña Probadores y grupos .

241a9936898a2fc0.png

  1. Haga clic en Exportar UDID de Apple .

bcf0c26c522d9b4e.png

El archivo debe contener el UDID de su dispositivo de prueba.

Device ID            Device Name                            Device Platform
1234567890     udid.codelab.tester@gmail.com - iPhone SE 2nd Gen        ios

Los UDID también se pueden exportar desde la línea de comando usando fastlane , lo que hará en la siguiente sección.

6. Actualice el perfil de aprovisionamiento de su aplicación y reconstrúyalo

Ahora, agregará el UDID de su dispositivo de prueba al perfil de aprovisionamiento de su aplicación, reconstruirá una versión de su aplicación que funcione para su dispositivo y distribuirá la nueva versión.

Agregar línea de exportación UDID

  1. Agregue otra variable en la parte superior de su Fastfile y configúrelo en una ruta de archivo donde se descargarán los UDID de los dispositivos de sus evaluadores.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"
  1. Configure una nueva ruta que utilice la acción de exportación de UDID del complemento App Distribution para descargar los UDID del probador, tal como lo hizo desde la consola.
lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end
  1. Ejecute el siguiente carril para descargar los UDID.

$ fastlane download_udids

  1. Imprima el archivo descargado, que debe contener los UDID del dispositivo de prueba.

$ cat tester_udids.txt

Agregar dispositivos a la consola de desarrollador de Apple

  1. Cree el siguiente carril para agregar los UDID a su lista de dispositivos en la consola de desarrollador de Apple, de modo que pueda agregarlos a su perfil de aprovisionamiento mediante la acción register_devices de fastlane :
lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end
  1. Luego, recorre el carril:

$ fastlane add_new_devices

Luego deberías ver los nuevos dispositivos en la lista de dispositivos de tu consola de desarrollador.

Agregue dispositivos a su perfil de aprovisionamiento

  1. Agregue el argumento force al paso del perfil de aprovisionamiento en su línea build , para obligarlo a seleccionar nuevos dispositivos cada vez que construya.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

Vuelva a ejecutar el carril para construir y cargar

Ahora, actualizará su línea distribute con las nuevas líneas para agregar los dispositivos al perfil de aprovisionamiento, reconstruir la aplicación y luego distribuirla.

  1. Llame a los nuevos carriles desde distribute :
lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: "1:123456789:ios:abcd1234",
        release_notes: "Try out this app!"
        testers: app_testers.join(","),
    )
end
  1. Ejecute el carril distribute :

$ fastlane distribute

En este punto, su Fastfile debería verse así:

firebase_app_id = "<your Firebase app ID>"
app_testers = [
  "your@email.com",
  "another@email.com",
]
tester_udids_file = "tester_udids.txt"

default_platform(:ios)

lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true, force: true)
    build_app(export_method: "ad-hoc")
end

lane :distribute do
    download_udids
    add_new_devices
    build
    firebase_app_distribution(
        app: firebase_app_id,
        release_notes: "Try out this app!",
        testers: app_testers.join(","),
    )
end

lane :download_udids do
    firebase_app_distribution_get_udids(
        app: firebase_app_id,
        output_file: tester_udids_file,
    )
end

lane :add_new_devices do
    register_devices(devices_file: tester_udids_file)
end

Descargue la versión desde el dispositivo de prueba

Ahora que su aplicación incluye los UDID del dispositivo de prueba, se pueden instalar en los dispositivos de prueba.

e275f73d57cc8fb1.png

  1. En su dispositivo de prueba, regrese a la aplicación web del probador de App Distribution usando el enlace en el correo electrónico o el ícono en la pantalla de inicio del dispositivo.

Cuando navega a la aplicación UDID codelab, puede ver que la versión está lista para descargar.

papá6d03b6ad78746.png

  1. Si está en un dispositivo físico, presione descargar, luego instale y ejecute la aplicación.

7. Felicitaciones

Ahora ha configurado App Distribution y fastlane para automatizar su proceso de prueba previo al lanzamiento. Ahora, cuando desee invitar a evaluadores adicionales o agregar sus UDID a su aplicación, solo necesitará ejecutar un comando: fastlane distribute .

Así que ya no será necesario recopilar UDID individualmente de los evaluadores ni ir a la consola de desarrollador de Apple para actualizar listas de dispositivos o perfiles de aprovisionamiento. ¡Ni siquiera necesitas abrir XCode!

Este flujo de trabajo es fácil de configurar para ejecutarse cada hora o diariamente en su entorno de integración continua.

Otras lecturas