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

1. Antes de comenzar

4cddd34bd261cea0.png

En este laboratorio de código, 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 versión preliminar de una aplicación de iOS (Ad Hoc) para los probadores que usan Firebase App Distribution y fastlane .
  • Cómo registrarse como probador y descargar la aplicación distribuida en un dispositivo de prueba.
  • Cómo registrar rápidamente dispositivos de prueba mediante la exportación de 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 cargarla para su distribución.

Lo que necesitarás

  • Una cuenta de Google
  • Una máquina Apple con XCode 11.7+ instalado
  • Una aplicación de iOS de prelanzamiento Ad Hoc integrada en Xcode
  • Una cuenta de desarrollador de Apple de pago
  • Un dispositivo iOS físico para realizar pruebas.

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

Todavía puede verificar que la configuración funcionó al verificar que el botón "Descargar" aparece en la aplicación web del probador de distribución de aplicaciones.

2. Empezar

Configurar vía rápida

App Distribution se integra con Fastlane para permitirle automatizar la distribución de compilaciones previas al lanzamiento 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 configuración y elija "Configuración manual". Verá un subdirectorio llamado fastlane que contiene Fastfile , Appfile y Pluginfile , que usará para configurar fastlane .

Instalar la CLI de Firebase

También deberá 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 para instalar a través de npm .

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

$ firebase --version
12.0.0

3. Cree su 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 construir 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 laboratorio de programación, administrará su propia certificación y perfil mediante get_certificates (también conocido como cert ), que genera certificados de firma localmente y almacena todo en su llavero de macOS. Sin embargo, normalmente querrá usar 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 su 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 probadores.
lane :build do
    get_certificates()
    get_provisioning_profile(adhoc: true)
    build_app(export_method: "ad-hoc")
end
  1. [Opcional] Si nunca ha ejecutado su aplicación antes, ejecute el siguiente comando para crear su aplicación en la consola de desarrollador de Apple:

$ fastlane produce --skip_itc

  1. Finalmente, crea tu aplicación ejecutando el lane.

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

$ fastlane build

Si encuentra algún problema, consulte la guía de resolució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. Inicie sesión en Firebase.
  2. En Firebase console, crea o agrega un nuevo proyecto y luego llámalo "UDID Export Codelab".

No necesita habilitar Google Analytics para este proyecto.

  1. Haga clic en Crear proyecto .

Agregue su aplicación iOS al proyecto

  1. Haga clic en el icono de iOS para crear una nueva aplicación Firebase iOS e ingrese el ID del paquete de su aplicación.

9c26c130a6c42212.png

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

Su proyecto y aplicación ahora están disponibles en la página Resumen 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 la distribución de aplicaciones a su configuración Fastlane .

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

$ fastlane add_plugin firebase_app_distribution

  1. Confirme que el complemento está instalado:

$ fastlane

El resultado debe 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 autenticará su 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á listo para distribuir su aplicación.

  1. En la parte superior de tu ./fastlane/Fastfile , define una variable llamada firebase_app_id . Reemplace <your_app_id> con el ID de la aplicación de 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 usando 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 compilar su aplicación y crear una distribución.

$ fastlane distribute

En este punto, su Fastfile debería tener el siguiente aspecto:

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á la nueva versión de su aplicación.

c59dc1a94de3bf3c.png

5. Invite a los evaluadores a descargar su 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 evaluador para descargar y probar la aplicación que distribuyó.

Agréguese como probador del lanzamiento

  1. En firebase_app_id en la parte superior de su Fastfile, cree una variable para retener a 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, como espera el parámetro testers . Luego, pasa 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. Ejecutar el carril de nuevo.

$ fastlane distribute

Una vez que ejecute el carril, los evaluadores que agregó recibirán un correo electrónico de invitación de App Distribution que les notificará sobre la nueva versión disponible. En la consola de Firebase, ahora puede ver los evaluadores que agregó en el lanzamiento de su 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 a continuación para configurarse como probador en su dispositivo de prueba.

Registre su dispositivo de prueba

Como evaluador, deberá iniciar sesión en Google en su dispositivo de prueba para acceder a las versiones de la aplicación a las que ha sido invitado a probar. Debido a que su compilación de prueba es una versión Ad Hoc, también deberá registrar su dispositivo de prueba instalando el perfil de Firebase. Posteriormente, se puede acceder a los lanzamientos 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, inicie sesión con su cuenta de Google y toque Aceptar invitación.

d833407de251b89f.png

  1. Ahora puede ver los lanzamientos a los que ha sido invitado. Presiona Registrar dispositivo debajo de uno de los lanzamientos.

fd141215e54a938d.png

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

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

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

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 compartió el UDID de su dispositivo de prueba con Firebase, ahora puede continuar como desarrollador. En la pestaña Probadores del panel de distribución de aplicaciones , la información de su probador ahora aparece debajo del lanzamiento 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á 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 la consola de Firebase como un archivo de texto sin procesar.

  1. Para exportar todos los UDID, abra la pestaña Testers & Groups .

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 comandos mediante 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 de UDID

  1. Agregue otra variable en la parte superior de su Fastfile y configúrela en una ruta de archivo donde se descargarán los UDID del dispositivo 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 un nuevo carril que use la acción de exportación de UDID del complemento de distribución de aplicaciones 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, para 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, ejecute el carril:

$ fastlane add_new_devices

A continuación, debería ver los nuevos dispositivos en la lista de dispositivos de su consola de desarrollador.

Agregue dispositivos a su perfil de aprovisionamiento

  1. Agregue el argumento force al paso del perfil de aprovisionamiento en su carril build , para obligarlo a seleccionar nuevos dispositivos cada vez que compila.
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 carril distribute con los nuevos carriles para agregar los dispositivos al perfil de aprovisionamiento, reconstruir la aplicación y luego distribuirla.

  1. Llame a los nuevos carriles de 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

Descargar la versión del 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 distribución de aplicaciones usando el enlace en el correo electrónico o el ícono en la pantalla de inicio del dispositivo.

Cuando navega a la aplicación Codelab de UDID, 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

Ya configuró App Distribution y fastlane para automatizar su proceso de prueba previa al lanzamiento. Ahora, cuando desee invitar a más evaluadores o agregar sus UDID a su aplicación, solo necesitará ejecutar un comando: fastlane distribute .

Así que ya no tendrá que recopilar los UDID de los probadores de forma individual ni acudir a la consola de desarrolladores de Apple para actualizar las listas de dispositivos o los perfiles de aprovisionamiento. ¡Ni siquiera necesitas abrir XCode!

Este flujo de trabajo es fácil de configurar para que se ejecute cada hora o cada día en su entorno de integración continua.

Otras lecturas