En esta guía, se describe cómo distribuir compilaciones de AAB 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.
App Distribution se integra en el servicio de uso compartido interno de apps de Google Play para procesar los AAB que subes y entregar APK optimizados para la configuración de los dispositivos de tus verificadores. La distribución de AAB te permite hacer lo siguiente:
Ejecutar APK optimizados (entregados por Google Play) para los dispositivos de tus verificadores
Descubrir y depurar los problemas específicos del dispositivo
Probar funciones del paquete de aplicación, como Play Feature Delivery y Play Asset Delivery
Reducir el tamaño de las descargas para los verificadores
Permisos necesarios
Para subir AAB a App Distribution, debes vincular tu app de Firebase con una app en Google Play. Debes tener el nivel de acceso necesario para realizar estas acciones.
Si no tienes el acceso necesario a Firebase, puedes pedirle al propietario del proyecto de Firebase que te asigne el rol correspondiente usando la configuración de IAM de Firebase console. Si tienes preguntas sobre el acceso a tu proyecto de Firebase, incluida la búsqueda o asignación de propietarios, revisa las Preguntas frecuentes sobre "Permisos y acceso a los proyectos de Firebase".
La siguiente tabla se aplica a la vinculación de una app de Firebase con una app en Google Play y a la carga de AAB.
Acción en Firebase console | Permiso de IAM obligatorio | Roles de IAM que incluyen permisos obligatorios de forma predeterminada | Roles adicionales requeridos |
---|---|---|---|
Vincula una app de Firebase a una app en Google Play | firebase.playLinks.update
|
Uno de los siguientes roles: | Accede a una cuenta de desarrollador de Google Play como Administrador |
Sube AAB a App Distribution | firebaseappdistro.releases.update
|
Uno de los siguientes roles: | –– |
Antes de comenzar
Si aún no lo hiciste, agrega Firebase a tu proyecto de Android. Al final de este flujo de trabajo, tendrás una app de Firebase para Android en tu proyecto de Firebase.
Si no utilizas ningún otro producto de Firebase, solo debes crear un proyecto y registrar tu app. Si decides usar productos adicionales, asegúrate de completar todos los pasos que se indican en Agrega Firebase al proyecto de Android.
Para crear un vínculo de Firebase a Google Play y subir AAB, asegúrate de que la app cumpla con los siguientes requisitos:
La app en Google Play y la app de Firebase para Android deben estar registradas con el mismo nombre de paquete.
La app en Google Play debe estar configurada en el panel de apps y se distribuye en uno de los segmentos de Google Play (Pruebas internas, Pruebas cerradas, Pruebas abiertas o Producción).
La revisión de la app en Google Play debe estar completa y la app debe estar publicada. La app está publicada si en la columna Estado de la app se muestra uno de los siguientes estados: Pruebas internas (no pruebas internas en borrador), Pruebas cerradas, Pruebas abiertas o Producción.
Vincula tu app de Firebase para Android a tu cuenta de desarrollador de Google Play:
En Firebase console, ve a la
y, luego, selecciona la pestaña Integraciones. Configuración del proyecto En la tarjeta de Google Play, haz clic en Vincular.
Si ya tienes vínculos a Google Play, haz clic en Administrar en su lugar.Sigue las instrucciones en pantalla para habilitar la integración de App Distribution y seleccionar las apps de Firebase para Android que quieres vincular a Google Play.
Obtén más información para realizar vinculaciones a Google Play.
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(task: "bundle", ...) # 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!", android_artifact_type: "AAB" ) 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.
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.