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 el Fastfile
, puedes integrar App Distribution a 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: Es el ID de app de Firebase de tu aplicación. Puedes encontrarlo en la página Configuración general de Firebase console.
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"
debug
Es 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
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 (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.
Después de distribuirla, estará disponible en el panel de App Distribution de Firebase console durante 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 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.
Usa 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: Es el ID de app de Firebase de tu aplicación. Puedes encontrarlo en la página Configuración general de Firebase console. 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.