En este documento, se describe cómo distribuir compilaciones de APK 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. Además, sigue las instrucciones definidas en un Fastfile
. Después de configurar
fastlane y tu Fastfile
, puedes integrar App Distribution en tu
configuración de fastlane.
Antes de comenzar
Si aún no lo hiciste, agrega Firebase a tu proyecto de Android.
Si no utilizas ningún otro producto de Firebase, solo tienes que crear un proyecto y registrar tu app. Sin embargo, si decides usar productos adicionales en el futuro, asegúrate de completar todos los pasos en la página vinculada anteriormente.
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 Android:
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: El ID de app de Firebase de tu app. Puedes encontrar el ID de la app en Firebase console, en la página de Configuración general.
app: "1:1234567890:android:0a1b2c3d4e5f67890"
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.
android_artifact_type
Especifica el tipo de archivo de Android (APK o AAB).
android_artifact_path
Reemplaza
apk_path
(obsoleto). Es una ruta absoluta al archivo APK o AAB 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.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
A fin de 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 (aplicación nativa para Android) 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 APK o AAB). 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 obtener más información sobre cómo instalar la app de prueba, consulta la guía de configuración de verificadores. 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 el número de la compilación cada vez que creas
una versión nueva en App Distribution, puedes usar la
acción firebase_app_distribution_get_latest_release
y, por ejemplo, el complemento increment_version_code
de fastlane (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_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Para ver más detalles sobre la acción firebase_app_distribution_get_latest_release
,
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: El ID de app de Firebase de tu app. Puedes encontrar el ID de la app en Firebase console, en la página de Configuración general. app: "1:1234567890:android:0a1b2c3d4e5f67890" |
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. |
debug
|
Es una marca booleana. Puedes configurarla como |
Próximos pasos
Implementa los comentarios directos desde la app para facilitar que los verificadores envíen comentarios sobre tu app (incluidas capturas de pantalla).
Descubre cómo mostrar alertas en la app a los verificadores cuando haya nuevas compilaciones de tu app disponibles para instalar.
Conoce las prácticas recomendadas a fin de distribuir apps para Android a verificadores de QA con CI/CD.