Esta guía describe cómo distribuir compilaciones de AAB a los evaluadores mediante fastlane , una plataforma de código abierto que automatiza la creación y lanzamiento de aplicaciones para iOS y Android. Sigue instrucciones simples definidas en un Fastfile
. Después de configurar fastlane y Fastfile
, puede integrar App Distribution con su configuración de fastlane.
App Distribution se integra con el servicio interno para compartir aplicaciones de Google Play para procesar los AAB que usted carga y ofrecer APK que están optimizados para las configuraciones de dispositivos de sus evaluadores. La distribución de AAB le permite hacer lo siguiente:
Ejecute APK optimizados (servidos por Google Play) que estén optimizados para los dispositivos de sus evaluadores.
Descubra y depure problemas específicos del dispositivo.
Pruebe las funciones del paquete de aplicaciones, como Play Feature Delivery y Play Asset Delivery .
Reduzca el tamaño de las descargas para sus evaluadores.
Permisos requeridos
Para cargar AAB en App Distribution, debes vincular tu aplicación de Firebase a una aplicación en Google Play . Debe tener el nivel de acceso requerido para realizar estas acciones.
Si no tiene el acceso necesario a Firebase, puede pedirle al propietario del proyecto de Firebase que le asigne el rol correspondiente a través de la configuración de IAM de la consola de Firebase . Si tienes preguntas sobre cómo acceder a tu proyecto de Firebase, incluida la búsqueda o asignación de un propietario, consulta las preguntas frecuentes sobre "Permisos y acceso a proyectos de Firebase" .
La siguiente tabla se aplica a vincular una aplicación de Firebase a una aplicación en Google Play, así como a cargar AAB.
Acción en la consola Firebase | Permiso IAM requerido | Roles de IAM que incluyen los permisos necesarios de forma predeterminada | Roles adicionales requeridos |
---|---|---|---|
Vincular una aplicación de Firebase a una aplicación en Google Play | firebase.playLinks.update | Uno de los siguientes roles: | Acceso a una cuenta de desarrollador de Google Play como administrador |
Cargar AAB en la distribución de aplicaciones | firebaseappdistro.releases.update | Uno de los siguientes roles: | –– |
Antes de que empieces
Si aún no lo has hecho, agrega Firebase a tu proyecto de Android . Al final de este flujo de trabajo, tendrás una aplicación Firebase para Android en tu proyecto de Firebase.
Si no utiliza ningún otro producto de Firebase, solo necesita crear un proyecto y registrar su aplicación. Si decide utilizar productos adicionales, asegúrese de completar todos los pasos en Agregar Firebase a su proyecto de Android .
Para crear un enlace de Firebase a Google Play y cargar AAB, asegúrese de que su aplicación cumpla con los siguientes requisitos:
La aplicación en Google Play y la aplicación Firebase para Android están registradas con el mismo nombre de paquete.
La aplicación en Google Play se configura en el panel de la aplicación y se distribuye a una de las pistas de Google Play (pruebas internas, pruebas cerradas, pruebas abiertas o producción).
Se completa la revisión de la aplicación en Google Play y la aplicación está publicada. Su aplicación se publica si la columna Estado de la aplicación muestra uno de los siguientes estados: Prueba interna (no prueba interna preliminar), Prueba cerrada, Prueba abierta o Producción.
Vincula tu aplicación Firebase para Android a tu cuenta de desarrollador de Google Play:
En la consola de Firebase, ve a tu
En la tarjeta de Google Play , haz clic en Enlace .
Si ya tiene enlaces a Google Play, haga clic en Administrar .Siga las instrucciones en pantalla para habilitar la integración de distribución de aplicaciones y seleccione qué aplicaciones de Android de Firebase vincular a Google Play.
Obtén más información sobre cómo vincular a Google Play .
Paso 1. Configurar fastlane
Para agregar App Distribution a su configuración de fastlane, ejecute el siguiente comando desde la raíz de su proyecto de Android:
fastlane add_plugin firebase_app_distribution
Si el comando le solicita una opción, seleccione
Option 3: RubyGems.org
.
Paso 2. Autenticarse con Firebase
Antes de poder usar el complemento fastlane, primero debes autenticarte en tu proyecto de Firebase de una de las siguientes maneras. De forma predeterminada, el complemento fastlane busca credenciales de Firebase CLI si no se utiliza ningún otro método de autenticación.
La autenticación con una cuenta de servicio le permite utilizar el complemento de manera flexible con su sistema de integración continua (CI). Hay dos formas de proporcionar credenciales de cuenta de servicio:
- Pase el archivo de clave de su cuenta de servicio a la acción
firebase_app_distribution
. Puede que este método le resulte útil si ya tiene el archivo de clave de su cuenta de servicio en su entorno de compilación. - Configure la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
para que apunte al archivo de clave de su cuenta de servicio. Es posible que prefiera este método si ya tiene las Credenciales predeterminadas de la aplicación (ADC) configuradas para otro servicio de Google (por ejemplo, Google Cloud).
- En la consola de Google Cloud, seleccione su proyecto y cree una nueva cuenta de servicio.
- Agregue la función de administrador de distribución de aplicaciones de Firebase .
- Cree una clave json privada y muévala a una ubicación accesible para su entorno de compilación. Asegúrate de guardar este archivo en un lugar seguro , ya que otorga acceso de administrador a App Distribution en tu proyecto de Firebase.
- Omita este paso si creó su aplicación después del 20 de septiembre de 2019: en la consola de API de Google, habilite la API de distribución de aplicaciones de Firebase. Cuando se le solicite, seleccione el proyecto con el mismo nombre que su proyecto de Firebase.
Proporcione o localice las credenciales de su cuenta de servicio:
- Para pasar la clave de su cuenta de servicio a la acción
firebase_app_distribution
de su carril, configure el parámetroservice_credentials_file
con la ruta a su archivo JSON de clave privada. Para ubicar sus credenciales con ADC, configure la variable de entorno
GOOGLE_APPLICATION_CREDENTIALS
en la ruta del archivo JSON de clave privada. Por ejemplo:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Para obtener más información sobre la autenticación con ADC, lea Proporcionar credenciales a su aplicación.
- Para pasar la clave de su cuenta de servicio a la acción
Consulta Iniciar sesión con Firebase CLI para obtener instrucciones sobre cómo autenticar tu proyecto.
Paso 3. Configura tu Fastfile y distribuye tu aplicación
- En un carril
./fastlane/Fastfile
, agregue un bloquefirebase_app_distribution
. Utilice los siguientes parámetros para configurar la distribución:Parámetros de firebase_app_distribution app
Requerido : el ID de la aplicación Firebase de tu aplicación. Puede encontrar el ID de la aplicación en Firebase console, en la página Configuración general .
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Un token de actualización que se imprime cuando autenticas tu entorno de CI con Firebase CLI (lee Usar la CLI con sistemas de CI para obtener más información).
service_credentials_file
La ruta al archivo json de su cuenta de servicio de Google. Consulte arriba para saber cómo autenticarse utilizando las credenciales de la cuenta de servicio .
android_artifact_type
Especifica el tipo de archivo de Android (APK o AAB).
android_artifact_path
Reemplaza
apk_path
(obsoleto). Ruta absoluta al archivo APK o AAB que deseas cargar. Si no se especifica, fastlane determina la ubicación del archivo a partir del carril en el que se generó el archivo.release_notes
release_notes_file
Notas de la versión para esta compilación.
Puede especificar las notas de la versión directamente:
release_notes: "Text of release notes"
O especifique la ruta 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 evaluadores que desea invitar.
Puede especificar los evaluadores como una lista de direcciones de correo electrónico separadas por comas:
testers: "ali@example.com, bri@example.com, cal@example.com"
O puede especificar la ruta a un archivo de texto sin formato que contenga una lista de direcciones de correo electrónico separadas por comas:
testers_file: "/path/to/testers.txt"
groups
groups_file
Los grupos de testers que desea invitar (consulte Administrar testers ). Los grupos se especifican usando
alias de grupo , que puedes buscar en Firebase console.Puede especificar los grupos como una lista separada por comas:
groups: "qa-team, trusted-testers"
O puede especificar la ruta a un archivo de texto sin formato que contenga una lista de nombres de grupos separados por comas:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Los siguientes tipos de distribución forman parte de la función beta del probador automatizado .
Los dispositivos de prueba a los que desea distribuir compilaciones (consulte Pruebas automatizadas ).
Puede especificar los dispositivos de prueba como una lista de dispositivos de prueba separados por punto y coma:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
O puede especificar la ruta a un archivo de texto sin formato que contenga una lista de dispositivos de prueba separados por punto y coma:
test_devices_file: "/path/to/test-devices.txt"
test_username
El nombre de usuario para el inicio de sesión automático que se utilizará durante las pruebas automatizadas .
test_password
test_password_file
La contraseña para el inicio de sesión automático que se utilizará durante las pruebas automatizadas .
O puede especificar la ruta a un archivo de texto sin formato que contenga una contraseña:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Nombre del recurso para el campo de nombre de usuario para el inicio de sesión automático que se utilizará durante las pruebas automatizadas .
test_password_resource
Nombre del recurso para el campo de contraseña para el inicio de sesión automático que se utilizará durante las pruebas automatizadas .
test_non_blocking
Ejecute pruebas automatizadas de forma asincrónica. Visite la consola de Firebase para ver los resultados de las pruebas automáticas.
debug
Una bandera booleana. Puede establecer esto en
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 que la compilación esté disponible para los evaluadores, ejecute su carril:
fastlane <lane>
El valor de retorno de la acción es un hash que representa la versión cargada. Este hash también está disponible usando lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
. Para obtener más información sobre los campos disponibles en este hash, consulte la documentación de la API REST .
El complemento fastlane genera los siguientes enlaces después de la carga del lanzamiento. Estos enlaces lo ayudan a administrar archivos binarios y garantizar que los evaluadores y otros desarrolladores tengan la versión correcta:
- Un enlace a Firebase console que muestra una versión única. Puede compartir este enlace con otros desarrolladores de su organización.
- Un enlace a la versión en la experiencia del evaluador (aplicación nativa de Android) que permite a los evaluadores ver las notas de la versión e instalar la aplicación en su dispositivo. El evaluador necesita acceso a la versión para poder utilizar el enlace.
- Un enlace firmado que descarga e instala directamente el binario de la aplicación (archivo APK o AAB). El enlace caduca después de una hora.
Después de distribuir su compilación, estará disponible en el panel de distribución de aplicaciones de Firebase console durante 150 días. Cuando faltan 30 días para que expire la compilación, aparece un aviso de vencimiento en la consola y en la lista de compilaciones del evaluador en su dispositivo de prueba.
Los evaluadores que no fueron invitados previamente a probar la aplicación reciben invitaciones por correo electrónico para comenzar. Los evaluadores existentes reciben notificaciones por correo electrónico de que una nueva versión está lista para probar. Para saber cómo instalar la aplicación de prueba, consulte la guía de configuración del probador . Puede monitorear el estado de cada tester para determinar si aceptaron la invitación y si descargaron la aplicación en Firebase console.
(Opcional) Para incrementar automáticamente su número de compilación cada vez que crea una nueva versión en App Distribution, puede usar la acción firebase_app_distribution_get_latest_release
y, por ejemplo, el complemento fastlane increment_version_code
. El siguiente código proporciona un ejemplo de cómo incrementar automáticamente su número de 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 obtener más información sobre la acción firebase_app_distribution_get_latest_release
, consulta Obtener información sobre la última versión de tu aplicación .
Paso 4 (Opcional). Gestión de testers para la distribución.
Puede agregar y eliminar evaluadores de su proyecto o grupo usando su archivo Fastfile
o ejecutando acciones fastlane directamente. La ejecución de acciones anula directamente los valores establecidos en su Fastfile
.
Una vez que se agrega un tester a su proyecto de Firebase, puede agregarlo a versiones individuales. Los testers que son eliminados de tu proyecto de Firebase ya no tienen acceso a las versiones de tu proyecto, pero pueden conservar el acceso a tus versiones durante un período de tiempo.
Si tiene una gran cantidad de evaluadores, debería considerar el uso de grupos.
Usar 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
Ejecutar acciones 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 puede especificar evaluadores usando --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
: el número de tu proyecto de Firebase. -
group_alias
(opcional): si se especifica, los evaluadores se agregan (o se eliminan) al grupo especificado. -
service_credentials_file
: la ruta a su archivo de credenciales de servicio de Google. -
firebase_cli_token
: token de autenticación para Firebase CLI.
service_credentials_file
y firebase_cli_token
son los mismos argumentos utilizados por la acción de carga.
Paso 5 (Opcional). Obtenga información sobre la última versión de su aplicación
Puedes usar la acción firebase_app_distribution_get_latest_release
para obtener información sobre la última versión de tu aplicación en App Distribution, incluida información de la versión de la aplicación, notas de la versión y 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 de retorno de la acción es un hash que representa la última versión. Este hash también está disponible usando lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
. Para obtener más información sobre los campos disponibles en este hash, consulte la documentación de la API REST .
Parámetros
parámetros firebase_app_distribution_get_latest_release | |
---|---|
app | Requerido : el ID de la aplicación Firebase de tu aplicación. Puede encontrar el ID de la aplicación en Firebase console, en la página Configuración general . app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | Un token de actualización que se imprime cuando autenticas tu entorno de CI con Firebase CLI (lee Usar la CLI con sistemas de CI para obtener más información). |
service_credentials_file | La ruta al archivo json de su cuenta de servicio de Google. Consulte arriba para saber cómo autenticarse utilizando las credenciales de la cuenta de servicio . |
debug | Una bandera booleana. Puede establecer esto en |
Próximos pasos
Implemente comentarios en la aplicación para que a los evaluadores les resulte más fácil enviar comentarios sobre su aplicación (incluidas capturas de pantalla).
Aprenda cómo mostrar alertas en la aplicación a sus evaluadores cuando haya nuevas versiones de su aplicación disponibles para instalar.
Conozca las mejores prácticas para distribuir aplicaciones de Android a evaluadores de control de calidad mediante CI/CD .