Distribuir apps

La API de EMM de Google Play admite los siguientes métodos de distribución para apps públicas y privadas:

Instalar apps de forma manual desde Google Play Store administrado

Puedes definir qué apps están disponibles para que las instale un usuario en el policy de Device y configurarlas llamando a Devices.update. Cuando aprovisionas un dispositivo nuevo, debes establecer la política antes de agregar la cuenta de Google Play administrada al dispositivo. De lo contrario, la política no se aplicará durante un período breve después de agregar la cuenta al dispositivo.

El comportamiento de Play Store administrado se define según el valor de policy.productAvailabilityPolicy:

  • all: Todas las apps públicas de Play Store están disponibles.
  • whitelist: Solo están disponibles las apps que figuran en policy.productPolicy.

En ambos casos, todas las apps de policy.productPolicy se agregan de forma predeterminada al diseño de la tienda de la empresa. El diseño de la tienda de la empresa es la página principal de Play Store administrado cuando se selecciona whitelist, y se puede acceder a él en la pestaña "Apps de trabajo" cuando se selecciona all. Puedes permitir que tus clientes personalicen el diseño de la tienda de la empresa incorporando el iframe de Google Play administrado (consulta Cómo organizar apps con el iframe de Google Play administrado) o integrándolos con las APIs de diseño de Play Store personalizado.

Instalar apps de forma remota en los dispositivos de los usuarios

Para instalar de forma remota una app (también llamada instalación push) en el dispositivo de un usuario, configura policy.productPolicy.autoInstallPolicy en el policy de Device. Cuando aprovisionas un dispositivo nuevo, debes establecer la política antes de agregar la cuenta de Google Play administrada al dispositivo. De lo contrario, la política no se aplicará durante un período breve después de agregar la cuenta al dispositivo.

Se puede establecer autoInstallMode de la siguiente manera:

  • doNotAutoInstall: La app no se instala automáticamente.
  • autoInstallOnce: La app se instala automáticamente una vez. Si el usuario la desinstala, no se volverá a instalar.
  • forceAutoInstall: La app se instala automáticamente; si el usuario la desinstala, se volverá a instalar. En dispositivos administrados, el DPC debe bloquear la desinstalación con DevicePolicyManager.setUninstallBlocked.

En caso de falla (pérdida de conectividad, falta de almacenamiento, etc.), las instalaciones se vuelven a intentar automáticamente hasta que tengan éxito. Se aplica una estrategia de reintento de retirada exponencial para evitar desperdiciar batería y datos en caso de fallas irrecuperables.

Prioridad de instalación

Puedes elegir el orden de las instalaciones configurando autoInstallPriority. La prioridad debe ser un número entero sin firma y el valor predeterminado es 0. Las apps se instalarán en orden o prioridad crecientes, lo que significa que las apps con el valor de prioridad más bajo se instalarán primero.

Restricciones de instalaciones

Puedes establecer restricciones de instalación para cada app estableciendo un autoInstallConstraint, lo que te permitirá controlar el estado requerido del dispositivo durante la instalación:

  • si el dispositivo debe conectarse a una red Wi-Fi,
  • si el dispositivo debería estar cargándose,
  • y si el dispositivo debe estar inactivo (el usuario no debe utilizarlo de forma activa).

Si las restricciones no se cumplen de inmediato, las instalaciones afectadas se pondrán en cola hasta que se cumplan.

En una autoInstallConstraint, la regla AND se aplica entre los campos. Por ejemplo, con el siguiente autoInstallConstraint, el dispositivo debe estar cargando y conectado a una red no medida (p.ej., Wi-Fi) para que se instale la app:

"autoInstallConstraint": [
  "chargingStateConstraint" : "chargingRequired",
  "networkTypeConstraint" : "unmeteredNetwork"
]

Instalar apps automáticamente en dispositivos aprovisionados recientemente

La API de EMM de Google Play envía una notificación de NewDeviceEvent cuando se aprovisiona un dispositivo por primera vez. Para instalar automáticamente apps de instalación push en dispositivos aprovisionados recientemente, busca las notificaciones NewDeviceEvent. Desde cada NewDeviceEvent, recupera el userId y el deviceId y, luego, llama a Devices.update para establecer la política para ese dispositivo.

Si quieres obtener información para suscribirte a las notificaciones de EMM, consulta Cómo configurar las notificaciones de EMM.

Distribuye apps para pruebas cerradas

Las pruebas cerradas les permiten a los desarrolladores de apps obtener comentarios de usuarios de confianza sobre las primeras versiones de su app. Los desarrolladores pueden configurar pruebas cerradas en Google Play Console. Usas la API de Play EMM para permitir que los administradores de TI distribuyan versiones cerradas (también llamadas segmentos) de apps a usuarios específicos. Los clientes empresariales pueden usar esta función no solo para probar apps de terceros, sino también apps privadas desarrolladas de forma interna.

Apps aptas

Antes de que un desarrollador agregue una empresa a la lista de verificadores cerrados de una app, esta debe cumplir con los siguientes criterios:

  • Cuando se publica una versión de producción de la app en Google Play
  • En Play Console, las Funciones avanzadas de Google Play administrado están habilitadas en la página Precios y distribución de la app.
  • Todas las versiones cerradas de la app cumplen con los requisitos del código de versión.

Agrega una empresa a las pruebas cerradas

Los desarrolladores de apps pueden agregar empresas a las pruebas que usen los métodos Prueba Alfa cerrada o Prueba Alfa a través de Grupos de Google. Para obtener instrucciones, consulta la guía sobre cómo configurar una prueba abierta, cerrada o interna. El desarrollador debe ingresar el ID de la organización (también conocido como ID de la empresa) de cada empresa participante. Los administradores de TI pueden proporcionar el ID de su organización a desarrolladores de apps externos mediante estos pasos:

  1. Accede a Google Play Store administrado.
  2. Haz clic en Configuración del administrador.
  3. Copia la cadena del ID de la organización del cuadro de información de la organización y envíala al desarrollador.

Requisitos adicionales para las apps privadas

En el caso de las apps privadas, el desarrollador también debe agregar el ID de organización de cada empresa participante en la página Precios y distribución de Play Console. Para obtener instrucciones, consulta Publica una app privada.

Distribuye los segmentos cerrados a los usuarios

Si quieres recuperar una lista de segmentos disponibles para una empresa en una app específica, llama a Products.get. La lista appTracks[] que se incluye en la respuesta incluye los segmentos disponibles para cada app. appTracks[].trackAlias es un nombre legible por el usuario para el segmento que puedes mostrar en tu consola de EMM, y appTracks[].trackId es el ID legible por máquina del segmento.

Para otorgar a un usuario visibilidad del segmento cerrado de una app, configura policy.productPolicy[].trackIds[] en el policy de Device. Si hay varios segmentos disponibles para un dispositivo, se instalará la versión disponible con el código de versión más alto.

Los trackIds se quitarán automáticamente de la llamada Products.get en determinadas situaciones, como las siguientes:

  • El APK de la pista se promueve a otro segmento o a la producción.
  • La versión de producción se actualiza con una versión superior a la del segmento.
  • Un desarrollador detiene la pista.

Haz un seguimiento de las licencias de aplicaciones pagadas.

En el caso de las aplicaciones pagadas, el objeto Grouplicenses realiza un seguimiento de cuántas licencias posee una empresa y cuántas están en uso. Puedes llamar a Grouplicenses.get para obtener detalles sobre la licencia de una app.

Antes de que una aplicación pagada se pueda instalar en un dispositivo, la empresa debe tener una licencia disponible. Si hay una, se instala la app en el dispositivo y se crea un objeto Entitlements. Un objeto Entitlements vincula una licencia con un usuario y disminuye el recuento de licencias disponibles para la app. Si no hay licencias disponibles, la instalación de la app falla y no se crea ningún objeto Entitlements.

Las aplicaciones que se distribuyen sin cargo no usan los objetos Grouplicenses y Entitlements.