Puedes distribuir compilaciones a los verificadores con fastlane, una plataforma de código abierto que automatiza la compilación y el lanzamiento de apps para iOS y Android. Sigue las instrucciones simples que se definen en un Fastfile
. Después de configurar
fastlane y tu Fastfile
, puedes integrar App Distribution en tu configuración de fastlane.
Paso 1: Configura fastlane
Para agregar App Distribution a tu configuración de fastlane, ejecuta el siguiente comando desde la raíz de tu proyecto de iOS:
fastlane add_plugin firebase_app_distribution
Si el comando te muestra una opción, selecciona
Option 3: RubyGems.org
.
Paso 2. Autentica con Firebase
Antes de usar el complemento de fastlane, debes autenticarte con tu proyecto de Firebase de una de las siguientes maneras. Según la configuración predeterminada, el complemento de fastlane busca credenciales de Firebase CLI si no se utiliza ningún otro método de autenticación.
Paso 3: Configura el Fastfile y distribuye tu app
- En un carril de
./fastlane/Fastfile
, agrega un bloquefirebase_app_distribution
. Usa los siguientes parámetros para configurar la distribución:Parámetros de firebase_app_distribution app
Obligatorio solo si la app no contiene un archivo de configuración de Firebase (
GoogleService-Info.plist
): Es el ID de app de Firebase de tu aplicación. Puedes encontrar el ID de la app en la página Configuración general de Firebase console.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
La ruta a tu archivo
GoogleService-Info.plist
, en relación con la ruta del producto archivado. Se configura de forma predeterminada enGoogleService-Info.plist
.El archivo se usa para obtener el ID de app de Firebase de tu aplicación si no se especifica el parámetro
app
.firebase_cli_token
Un token de actualización que se imprime cuando autenticas el entorno de CI con Firebase CLI (consulta Usa la CLI con sistemas de CI para obtener más información).
service_credentials_file
La ruta al archivo JSON de tu cuenta de servicio de Google. Consulta la sección anterior sobre cómo autenticar con credenciales de cuenta de servicio.
ipa_path
Reemplaza
apk_path
(obsoleto). Es una ruta absoluta al archivo IPA que quieres subir. Si no se especifica, fastlane determina la ubicación del archivo desde el carril en el que se generó el archivo.release_notes
release_notes_file
Son las notas de la versión de esta compilación.
Puedes especificar las notas de la versión directamente, como sigue:
release_notes: "Text of release notes"
O bien, especificar la ruta de acceso a un archivo de texto sin formato:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Las direcciones de correo electrónico de los verificadores que quieres invitar.
Puedes especificar los verificadores como una lista de direcciones de correo electrónico separada por comas, como sigue:
testers: "ali@example.com, bri@example.com, cal@example.com"
O bien, puedes especificar la ruta de acceso a un archivo de texto sin formato que contenga una lista de direcciones de correo electrónico separada por comas, de la siguiente manera:
testers_file: "/path/to/testers.txt"
groups
groups_file
Los grupos de verificadores que deseas invitar (consulta Administra verificadores). Los grupos se especifican con
alias de grupos , que puedes consultar en Firebase console.Puedes especificar los grupos como una lista separada por comas, como sigue:
groups: "qa-team, trusted-testers"
O bien, puedes especificar la ruta de acceso a un archivo de texto sin formato que contenga una lista de nombres de grupo separada por comas, de la siguiente manera:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Los siguientes tipos de distribución forman parte de la función beta de verificadores automatizados.
Los dispositivos de prueba a los que deseas distribuir las compilaciones (consulta Pruebas automatizadas).
Puedes especificar los dispositivos de prueba como una lista de dispositivos de prueba separada por punto y coma:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
También puedes especificar la ruta de acceso a un archivo de texto sin formato que contenga una lista de dispositivos de prueba separada por punto y coma:
test_devices_file: "/path/to/test-devices.txt"
test_username
El nombre de usuario del acceso automático que se usará durante las pruebas automatizadas.
test_password
test_password_file
La contraseña del acceso automático que se usará durante las pruebas automatizadas.
O bien, puedes especificar la ruta de acceso a un archivo de texto sin formato que contenga una contraseña:
test_password_file: "/path/to/test-password.txt"
test_username_resource
El nombre del recurso del campo de nombre de usuario del acceso automático que se usará durante las pruebas automatizadas.
test_password_resource
El nombre de recurso del campo de contraseña para el acceso automático que se usará durante las pruebas automatizadas.
test_non_blocking
Ejecuta pruebas automatizadas de forma asíncrona. Visita Firebase console para ver los resultados de la prueba automática.
debug
Una marca booleana. Puedes configurarla como
true
para imprimir una salida de depuración detallada.
Por ejemplo:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Para hacer que la compilación esté disponible para los verificadores, ejecuta el carril de la siguiente manera:
fastlane <lane>
El valor que se muestra de la acción es un hash que representa la versión que se subió.
Este hash también está disponible mediante lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
.
Para obtener más información sobre los campos disponibles en este hash, consulta la
documentación de la API de REST.
El complemento de fastlane genera los siguientes vínculos después de la carga de la versión. Estos vínculos te ayudan a administrar objetos binarios y garantizar que los verificadores y otros desarrolladores tengan la versión correcta:
- Es un vínculo a Firebase console que muestra una sola versión. Puedes compartir este vínculo con otros desarrolladores de tu organización.
- Es un vínculo a la versión en la experiencia de verificador (clip web para iOS) que permite que los verificadores vean las notas de la versión y, luego, instalen la app en su dispositivo. El verificador necesita acceso a la versión para poder usar el vínculo.
- Es un vínculo firmado que descarga e instala directamente el objeto binario de la app (archivo IPA). El vínculo vence después de una hora.
Una vez que distribuyas la compilación, estará disponible en el panel de App Distribution de Firebase console por 150 días. Cuando falten 30 días para que venza la compilación, se mostrará un aviso de vencimiento en la consola y en la lista de compilaciones del verificador, en el dispositivo de prueba.
Los verificadores que no recibieron invitaciones para probar la app las recibirán por correo electrónico a fin de comenzar. Los verificadores existentes reciben notificaciones por correo electrónico en las que se indica que hay una compilación nueva lista para probarse. Para aprender a instalar la app de prueba, consulta Prepárate como verificador. En Firebase console, puedes supervisar el estado de cada verificador para determinar si aceptó la invitación y si descargó la app.
Para aumentar automáticamente tu número de compilación cada vez que creas
una nueva versión en App Distribution, puedes usar la acción
firebase_app_distribution_get_latest_release
y la acción increment_build_number
(opcional).
En el siguiente código, se proporciona un ejemplo de cómo aumentar automáticamente el
número de la compilación:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Para ver detalles sobre esta función del complemento de fastlane, consulta Obtén información sobre la versión más reciente de la app.
Paso 4 (opcional): Administra verificadores para la distribución
Puedes agregar y quitar verificadores de tu proyecto o grupo con el archivo Fastfile
o mediante la ejecución directa de acciones de fastlane. Ejecutar acciones directamente anula
los valores establecidos en el Fastfile
.
Una vez que se agrega un verificador a tu proyecto de Firebase, puedes incluirlo en versiones individuales. Los verificadores que se quitan de tu proyecto de Firebase ya no tienen acceso a las actualizaciones del proyecto, pero es posible que conserven el acceso a las versiones durante un período determinado.
Si tienes muchos verificadores, deberías usar grupos.
Utilizar Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Ejecuta acciones de fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
También puedes especificar verificadores con --file="/path/to/testers.txt
, en lugar de
--emails
.
Las tareas firebase_app_distribution_add_testers
y
firebase_app_distribution_remove_testers
también aceptan los siguientes
argumentos:
project_name
: Es el número de tu proyecto de Firebase.group_alias
(opcional): Si se especifica, los verificadores se agregan (o se quitan) del grupo especificado.service_credentials_file
: Es la ruta de acceso al archivo de credenciales del servicio de Google.firebase_cli_token
: Es el token de autenticación de Firebase CLI.
service_credentials_file
y firebase_cli_token
son los mismos
argumentos que usa la acción de carga.
Paso 5 (opcional): Obtén información sobre la versión más reciente de la app
Puedes usar la acción firebase_app_distribution_get_latest_release
para recuperar información sobre la versión más reciente de tu app en App Distribution,
incluidos los datos y las notas de la versión de la app, así como la hora de creación. Los casos de uso
incluyen aumentar automáticamente la versión y transferir las notas
de la versión anterior.
El valor que se muestra de la acción es un hash que representa la versión más reciente.
Este hash también está disponible mediante lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
.
Para obtener más información sobre los campos disponibles en este hash, consulta la
documentación de la API de REST.
Parámetros
Parámetros de firebase_app_distribution_get_latest_release | |
---|---|
app
|
Obligatorio solo si la app no contiene un archivo de configuración de Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
La ruta a tu archivo
El archivo se usa para obtener el ID de app de Firebase de tu aplicación si no se especifica el parámetro |
firebase_cli_token
|
Un token de actualización que se imprime cuando autenticas el entorno de CI con Firebase CLI (consulta Usa la CLI con sistemas de CI para obtener más información). |
service_credentials_file
|
La ruta al archivo JSON de tu cuenta de servicio de Google. Consulta la documentación anterior sobre cómo autenticar con credenciales de cuenta de servicio. |
service_credentials_json_data
|
Contenido del archivo JSON de la cuenta de servicio de Google. Consulta la documentación anterior sobre cómo autenticar con credenciales de cuenta de servicio. |
debug
|
Una marca booleana. Puedes configurarla como |
Próximos pasos
Si quieres registrar más dispositivos de forma manual o programática, consulta Registra dispositivos iOS adicionales.
Conoce las prácticas recomendadas a fin de distribuir apps para Apple a verificadores de control de calidad con CI/CD y fastlane.