Cómo realizar la configuración para licencias

Antes de comenzar a agregar la verificación de licencias a tu aplicación, debes configurar tu cuenta de publicación de Google Play, tu entorno de desarrollo y las cuentas de prueba necesarias para verificar tu implementación.

Cómo configurar una cuenta de publicador

Si todavía no tienes una cuenta de publicador para Google Play, debes registrarte a fin de obtener una con tu Cuenta de Google y aceptar las Condiciones del Servicio de Google Play.

Para obtener más información, consulta Cómo comenzar a publicar.

Si ya tienes una cuenta de publicador en Google Play, usa tu Play Console para configurar la licencia.

Con Google Play Console, puedes hacer lo siguiente:

  • Obtener una clave pública específica de la app para las licencias
  • Depurar y probar la implementación de licencias de una aplicación antes de publicarla
  • Publicar las aplicaciones para las que agregaste compatibilidad de licencias

Configuración administrativa para licencias

Puedes manejar varios controles administrativos para las licencias de Google Play en Play Console. Los controles te permiten hacer lo siguiente:

  • Configurar varias "cuentas de prueba", identificadas por la dirección de correo electrónico. El servidor de licencias permite que los usuarios accedan a cuentas de prueba en un dispositivo o emulador para enviar verificaciones de licencias y recibir respuestas de prueba estáticas. Puedes configurar cuentas en la página de detalles de la cuenta de Play Console.
  • Configurar las respuestas de prueba estáticas que envía el servidor, cuando recibe una verificación de licencias para una aplicación cargada en la cuenta de publicador, desde un usuario que accedió a la cuenta de publicador o una cuenta de prueba. Puedes configurar las respuestas de prueba en la página de detalles de la cuenta de Play Console.
  • Obtener la clave pública de la aplicación para la licencia. Cuando implementas una licencia en una aplicación, debes copiar la cadena de clave pública en la aplicación. Puedes obtener la clave pública de la app para la licencia en la página Servicios y API (en Todas las aplicaciones).

Figura 1: La clave de licencia de una app está disponible en la página Servicios y API de Play Console

Para obtener más información sobre cómo trabajar con cuentas de prueba y respuestas de prueba estáticas, consulta Cómo configurar el entorno de prueba, más abajo.

Cómo configurar el entorno de desarrollo

La configuración de tu entorno para la licencia implica las siguientes tareas:

  1. Configurar el entorno de ejecución para el desarrollo
  2. Descargar la LVL en tu SDK
  3. Configurar la biblioteca de verificación de licencias
  4. Incluir el proyecto de la biblioteca LVL en tu aplicación

En las siguientes secciones se describen estas tareas. Una vez terminada la configuración, puedes comenzar a agregar licencias a tu app.

Para comenzar, debes configurar un entorno de ejecución adecuado en el que puedas ejecutar, depurar y probar la implementación de tu aplicación de verificación y cumplimiento de licencias.

Cómo configurar el entorno de ejecución

Como se describió antes, las aplicaciones, cuando comprueban el estado de la licencia, no lo hacen mediante el servidor de licencias directamente, sino mediante un servicio proporcionado por la aplicación de Google Play e iniciando una solicitud de verificación de licencia. Luego, el servicio de Google Play se encarga de la comunicación directa con el servidor de licencias y, finalmente, redirige la respuesta a tu aplicación. Para depurar y probar las licencias en tu aplicación, debes configurar un entorno de ejecución que incluya el servicio de Google Play necesario de modo que tu aplicación pueda enviar solicitudes de verificación de licencias al servidor de licencias.

Existen dos tipos de entorno de ejecución que puedes usar:

  • Un dispositivo con Android que incluya la aplicación de Google Play
  • Un emulador de Android que ejecuta el complemento de API de Google, nivel de API 8 (versión 2) o superior

Ejecución en un dispositivo

A fin de usar un dispositivo con Android para depurar y probar licencias, el dispositivo debe hacer lo siguiente:

  • Ejecutar una versión compatible de Android 1.5 o posterior (nivel de API 3 o superior)
  • Ejecutar una imagen del sistema en la que esté preinstalada la aplicación cliente de Google Play

Si Google Play no está preinstalado en la imagen del sistema, tu aplicación no podrá comunicarse con el servidor de licencias de Google Play.

Si deseas obtener información general sobre cómo configurar un dispositivo a fin de desarrollar aplicaciones para Android, consulta Cómo usar dispositivos de hardware.

Ejecución en un Android Emulator

Si no tienes un dispositivo disponible, puedes usar un Android Emulator para depurar y probar licencias.

Debido a que las plataformas de Android proporcionadas en el SDK de Android no incluyen Google Play, debes descargar la plataforma de complementos de las API de Google y la nivel de API 8 (o niveles superiores) desde el repositorio del SDK. Después de descargar el complemento, debes crear una configuración de AVD que use esa imagen del sistema.

El complemento de API de Google no incluye el cliente completo de Google Play. Sin embargo, proporciona lo siguiente:

  • Un servicio en segundo plano de Google Play que implementa la interfaz remota de ILicensingService y que sirve para que tu aplicación pueda enviar verificaciones de licencias mediante la red al servidor de licencias
  • Un conjunto de servicios de cuenta subyacentes que te permiten agregar una Cuenta de Google en el AVD y acceder con tu cuenta de publicador o tus credenciales de cuenta de prueba

    Si accedes con tu cuenta de publicador o de prueba, podrás depurar y probar tu aplicación sin tener que publicarla. Para obtener más información, consulta la sección Cómo acceder a una cuenta autorizada, que aparece más abajo.

Varias versiones del complemento de las API de Google están disponibles mediante SDK Manager, pero solo a partir de la versión para Android 2.2 se incluyen los servicios necesarios de Google Play.

Para configurar un emulador que permita agregar licencias a una aplicación, sigue estos pasos:

  1. Inicia Android SDK Manager, que está disponible en el menú Tools de Android Studio (Tools > Android > SDK Manager) o mediante la ejecución de <sdk>/tools/android sdk.
  2. Selecciona y descarga las API de Google para la versión de Android de destino (debe ser Android 2.2 o superior).
  3. Cuando finalice la descarga, abre el Administrador de AVD, que está disponible en el menú Tools de Android Studio (Tools > Android > AVD Manager) o mediante la ejecución de <sdk>/tools/android avd.
  4. En la ventana Android Virtual Device Manager, selecciona + Create Virtual Device para configurar los detalles de configuración del nuevo AVD.
  5. En la ventana Virtual Device Configuration, selecciona el hardware del dispositivo; luego, selecciona Next.
  6. Selecciona una API de Google como imagen del sistema para ejecutar en el nuevo AVD; luego, selecciona Next.
  7. Asigna un nombre descriptivo al AVD y, luego, configura los demás detalles de configuración según sea necesario.
  8. Selecciona Finish para crear la nueva configuración de AVD, que aparecerá en la lista de dispositivos virtuales de Android disponibles.

Si no estás familiarizado con los AVD o con cómo usarlos, consulta Cómo administrar dispositivos virtuales.

Actualiza la configuración de tu proyecto

Después de configurar un entorno de ejecución que cumpla con los requisitos descritos anteriormente (ya sea en un dispositivo real o en un emulador) asegúrate de actualizar tu proyecto de aplicación, o bien de compilar secuencias de comandos según sea necesario para que tus archivos compilados .apk que usan licencias se implementen en ese entorno. En particular, si desarrollas en Android Studio, asegúrate de usar una configuración de ejecución y depuración que tenga el dispositivo o AVD de destino adecuado.

No es necesario realizar cambios en la configuración de compilación de tu aplicación, siempre que el proyecto ya esté configurado para compilar en una biblioteca estándar de Android 1.5 (nivel de API 3) o superior. Agregar licencias a una aplicación no debería tener ningún impacto en la configuración de compilación de esta.

Cómo descargar la LVL

La biblioteca de verificación de licencias (LVL) es una colección de clases de ayuda que simplifican enormemente el trabajo que debes hacer para agregar licencias a tu aplicación. En todos los casos, te recomendamos descargar la LVL y usarla como base para la implementación de la licencia en tu aplicación.

La biblioteca de verificación de licencias (LVL) está desarrollada en GitHub. Puedes clonar el repositorio de LVL y configurarlo como un proyecto de biblioteca. Para clonar el repositorio, escribe lo siguiente en la línea de comandos:

git clone https://github.com/google/play-licensing

En el repositorio, se incluye lo siguiente:

  • Las fuentes de LVL, almacenadas dentro de un proyecto de biblioteca de Android.
  • Una aplicación de ejemplo, llamada "sample", que depende del proyecto de biblioteca de LVL. En el ejemplo, se ilustra de qué manera una aplicación usa las clases de ayuda de la biblioteca para verificar y hacer cumplir las licencias.

Cómo configurar la biblioteca de verificación de licencias

Después de descargar la LVL en tu computadora, debes configurarla en tu entorno de desarrollo, ya sea como un Proyecto Biblioteca de Android o copiando (o importando) las fuentes de la biblioteca de forma directa en tu paquete de aplicación existente. En general, se recomienda usar la LVL como proyecto de biblioteca, ya que te permite reutilizar tu código de licencia en varias aplicaciones y mantenerlo más fácilmente con el tiempo. Ten en cuenta que la LVL no está diseñada para compilarse por separado y agregarse a una aplicación como un archivo .jar estático.

La forma recomendada de usar la LVL es configurarla como un nuevo proyecto de biblioteca de Android. Un proyecto de biblioteca es un tipo de proyecto de desarrollo que contiene recursos y código fuente de Android compartido. Otros proyectos de aplicaciones de Android pueden hacer referencia al proyecto de biblioteca y, en el momento de la compilación, incluir sus fuentes compiladas en sus archivos .apk. En el contexto de las licencias, esto significa que puedes realizar la mayor parte del desarrollo de licencias una vez en un proyecto de biblioteca y, luego, incluir las fuentes de biblioteca en tus diversos proyectos de aplicación. De este modo, puedes mantener fácilmente y de manera centralizada una implementación uniforme de las licencias en todos tus proyectos. Si no estás familiarizado con los proyectos de la biblioteca o con cómo usarlos, consulta Cómo administrar proyectos.

La LVL se proporciona como un proyecto de biblioteca configurado. Una vez que la hayas descargado, podrás comenzar a usarla de inmediato.

Si estás trabajando en Android Studio, debes agregar la LVL a tu proyecto como un módulo nuevo.

  1. Usa la ventana "Import Module from Source" a fin de importar un módulo de biblioteca. Para ello, selecciona File > New > Import Module.
  2. En la ventana Import Module from Source, en Source directory, ingresa el directorio library de la LVL (el directorio que contiene el archivo AndroidManifest.xml de la biblioteca) como raíz del proyecto (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml) y, luego, selecciona Next.
  3. Selecciona Finish para importar el módulo de la biblioteca.

Para obtener más información sobre cómo trabajar con módulos de biblioteca en Android Studio, consulta Cómo crear una biblioteca de Android.

Cómo incluir las fuentes del proyecto de la biblioteca LVL en tu aplicación

Si deseas utilizar las fuentes de LVL como un proyecto de biblioteca, debes agregar una referencia al proyecto de biblioteca LVL en las propiedades de tu proyecto de aplicación. Esto les indica a las herramientas de compilación que incluyan las fuentes del proyecto de la biblioteca LVL en tu aplicación en el momento de la compilación. El proceso para agregar una referencia a un proyecto de biblioteca depende de tu entorno de desarrollo, como se describe a continuación.

Si estás desarrollando en Android Studio, ya deberías haber agregado el módulo de biblioteca a tu proyecto, como se describió en la sección anterior. Si todavía no lo hiciste, hazlo ahora, antes de continuar.

Si estás desarrollando con las herramientas de línea de comandos del SDK, navega hasta el directorio que contiene tu proyecto de aplicación y abre el archivo project.properties. Agrega una línea al archivo que especifique la clave android.library.reference.<n> y la ruta a la biblioteca. Por ejemplo:

android.library.reference.1=path/to/library_project

Como alternativa, puedes usar este comando para actualizar las propiedades del proyecto, incluida la referencia al proyecto de la biblioteca:

android update lib-project
--target <target_ID> \
--path path/to/my/app_project \
--library path/to/my/library_project

Para obtener más información sobre cómo trabajar con proyectos de biblioteca, consulta Cómo configurar un proyecto de biblioteca.

Cómo configurar el entorno de prueba

Google Play Console proporciona herramientas de configuración con las que tú y otros usuarios pueden probar las licencias de tu aplicación antes de que se publique. A medida que implementes las licencias, podrás usar las herramientas de Play Console para probar la política de tu aplicación y manejar diferentes respuestas de licencias y condiciones de error.

Los componentes principales del entorno de prueba para la licencia incluyen lo siguiente:

  • Una configuración de "Respuesta de prueba" en tu cuenta de publicador que te permite configurar la respuesta de licencia estática que se muestra, cuando el servidor procesa una verificación de licencia para una aplicación cargada en la cuenta de publicador, de un usuario que accedió a la cuenta de publicador o una cuenta de prueba
  • Un conjunto opcional de cuentas de prueba que recibirán la respuesta de prueba estática cuando verifiquen la licencia de una aplicación que hayas cargado (independientemente de si la aplicación está publicada o no)
  • Un entorno de ejecución para la aplicación que incluye la aplicación de Google Play o el complemento de API de Google, en el que el usuario accede a la cuenta de publicador o a una de prueba

La correcta configuración del entorno de pruebas implica lo siguiente:

  1. Configurar las respuestas de prueba estáticas que muestra el servidor de licencias
  2. Configurar cuentas de prueba según sea necesario
  3. Acceder correctamente a un emulador o dispositivo, antes de iniciar una prueba de verificación de licencia

Encontrarás más información en las próximas secciones.

Cómo configurar respuestas de prueba para verificaciones de licencias

Google Play proporciona una configuración en tu cuenta de publicador que te permite anular el procesamiento normal de una verificación de licencia y mostrar un código de respuesta estática especificado. La configuración es solo para pruebas y se aplica solamente a las verificaciones de licencias para las aplicaciones que cargaste, realizadas por cualquier usuario que haya accedido a un emulador o dispositivo utilizando las credenciales de la cuenta de publicador o una cuenta de prueba registrada. Para otros usuarios, el servidor siempre procesa las verificaciones de licencia de acuerdo con las reglas normales.

Si quieres configurar una respuesta de prueba para tu cuenta, accede a tu cuenta de publicador y haz clic en "Edit Profile". En la página Edit Profile, busca el menú Test Response en el panel Licensing, que se muestra a continuación. Puedes seleccionar una opción del conjunto completo de códigos de respuesta del servidor válidos para controlar la respuesta o condición que deseas probar en tu aplicación.

En general, debes asegurarte de probar la implementación de licencias de tu aplicación con cada código de respuesta disponible en el menú Test Response. Para obtener una descripción de los códigos, consulta Códigos de respuesta del servidor en Referencia de licencias.

Figura 2: En el panel License Testing de la página de detalles de tu cuenta, puedes configurar cuentas de prueba y administrar respuestas de prueba.

Ten en cuenta que la respuesta de prueba que configures se aplicará a toda la cuenta (es decir, no se aplicará a una sola aplicación, sino a todas las aplicaciones asociadas con la cuenta de publicador). Si estás probando varias aplicaciones a la vez, cambiar la respuesta de la prueba afectará a todas esas aplicaciones en su próxima verificación de licencia (si el usuario accedió al emulador o dispositivo con la cuenta de publicador o una cuenta de prueba).

A fin de poder recibir con éxito una respuesta de prueba para una verificación de licencia, debes acceder desde el dispositivo o emulador en el que está instalada la aplicación y desde la cual está consultando el servidor. Específicamente, debes acceder con tu cuenta de publicador o una de las cuentas de prueba que configuraste. Para obtener más información sobre las cuentas de prueba, consulta la siguiente sección.

Consulta Códigos de respuesta del servidor para obtener una lista de las respuestas de prueba disponibles y sus significados.

Cómo configurar cuentas de prueba

En algunos casos, puedes permitir que varios equipos de desarrolladores prueben las licencias de aplicaciones que se publicarán finalmente mediante tu cuenta de publicador, pero sin darles acceso a las credenciales de tu cuenta de publicador. Para satisfacer esa necesidad, Google Play Console te permite configurar una o más cuentas de prueba opcionales: cuentas que están autorizadas a consultar el servidor de licencias y recibir respuestas de prueba estáticas desde tu cuenta de publicador.

Las cuentas de prueba son Cuentas de Google estándar que puedes registrar en tu cuenta de publicador de manera tal que puedan recibir la respuesta de prueba de las aplicaciones que hayas cargado. Los desarrolladores pueden acceder desde sus dispositivos o emuladores con las credenciales de la cuenta de prueba e iniciar comprobaciones de licencias desde las aplicaciones instaladas. Cuando el servidor de licencias recibe una verificación de licencia de un usuario de una cuenta de prueba, muestra la respuesta de prueba estática configurada para la cuenta de publicador.

Necesariamente, existen limitaciones en el acceso y los permisos otorgados a los usuarios que acceden mediante cuentas de prueba, entre las que se incluyen las siguientes:

  • Los usuarios de la cuenta de prueba pueden consultar el servidor de licencias solo para las aplicaciones que ya están cargadas en la cuenta de publicador.
  • Los usuarios de la cuenta de prueba no tienen permiso para subir aplicaciones a tu cuenta de publicador.
  • Los usuarios de la cuenta de prueba no tienen permiso para configurar la respuesta de prueba estática de la cuenta de publicador.

En la siguiente tabla, se resumen las diferencias de capacidades entre la cuenta de publicador, una cuenta de prueba y cualquier otra cuenta.

Tabla 1: Diferencias en los tipos de cuenta para probar licencias.

Tipo de cuenta ¿Puede verificar la licencia antes de subir? ¿Puede recibir respuesta de prueba? ¿Puede configurar una respuesta de prueba?
Cuenta de publicador
Cuenta de prueba No No
Otra No No No

Cómo registrar cuentas de prueba en la cuenta de publicador

Para comenzar, debes registrar cada cuenta de prueba en tu cuenta de publicador. Como se muestra en la figura 2, puedes registrar las cuentas de prueba en el panel de licencias de la página Edit Profile de tu cuenta de publicador. Simplemente, ingresa las cuentas como una lista delimitada por comas y haz clic en Save para guardar los cambios de tu perfil.

Puedes usar cualquier Cuenta de Google como cuenta de prueba. Si deseas poseer y controlar las cuentas de prueba, puedes crearlas tú mismo y distribuir credenciales a tus desarrolladores o verificadores.

Cómo administrar la carga y distribución de aplicaciones para usuarios de cuentas de prueba

Como se mencionó anteriormente, los usuarios de cuentas de prueba solo pueden recibir respuestas de prueba estáticas para las aplicaciones que se suben en la cuenta de publicador. Dado que esos usuarios no tienen permiso para subir aplicaciones, como publicador, deberás trabajar con ellos a fin de recopilar aplicaciones para subir y distribuir aplicaciones cargadas para probar. Puedes administrar la recopilación y la distribución de cualquier forma que te resulte conveniente.

Una vez que se carga una aplicación y el servidor de licencias la conoce, los desarrolladores y verificadores pueden continuar modificando la aplicación en su entorno de desarrollo local sin tener que cargar nuevas versiones. Solo debes cargar una nueva versión si la aplicación local incrementa el atributo versionCode en el archivo de manifiesto.

Cómo distribuir tu clave pública para probar los usuarios de la cuenta

El servidor de licencias controla las respuestas de prueba estáticas de la forma habitual, lo que incluye firmar los datos de respuesta de la licencia, agregar parámetros de extras, etc. Para ayudar a los desarrolladores que implementan licencias con cuentas de prueba en lugar de la cuenta de publicador, tendrás que distribuirles la clave pública de la app a fin de proporcionarles licencias. Los desarrolladores sin acceso a Play Console no tienen acceso a la clave pública de la aplicación y, sin la clave, no podrán verificar las respuestas de la licencia.

Ten en cuenta que, si decides generar un nuevo par de claves de licencia para la app por algún motivo, debes notificar a todos los usuarios de las cuentas de prueba. Para los verificadores, puedes incorporar la clave nueva en el paquete de la aplicación y distribuirla a los usuarios. En cuanto a los desarrolladores, tendrás que distribuirles la nueva clave directamente.

Cómo acceder a una cuenta autorizada en el entorno de ejecución

El servicio de licencias está diseñado con el objetivo de determinar si un usuario tiene licencia para usar una aplicación determinada. Durante la verificación de la licencia, la aplicación recopila el ID de usuario de la cuenta principal del sistema y lo envía al servidor, junto con el nombre del paquete de la aplicación y otra información. Sin embargo, si no hay información del usuario disponible, la verificación de licencia no se puede realizar correctamente, por lo que la aplicación de Google Play resuelve la solicitud y muestra un error.

Durante las pruebas, para asegurarte de que tu aplicación pueda consultar correctamente el servidor de licencias, debes asegurarte de acceder a una cuenta en el dispositivo o emulador mediante lo siguiente:

  • Las credenciales de una cuenta de publicador
  • Las credenciales de una cuenta de prueba que esté registrada con una cuenta de publicador

Acceder con una cuenta de publicador ofrece la ventaja de permitir que tus aplicaciones reciban respuestas de prueba estáticas incluso antes de que las aplicaciones se carguen en Play Console.

Si formas parte de una organización más grande o trabajas con grupos externos en aplicaciones que se publicarán en tu sitio, lo más probable es que desees distribuir cuentas de prueba y usarlas para acceder durante la prueba.

Para acceder en un dispositivo o emulador, sigue los pasos que aparecen a continuación. El método preferido es acceder como la cuenta principal. Sin embargo, si hay otras cuentas en uso en el dispositivo o emulador, puedes crear una cuenta adicional y acceder con las credenciales de publicador o de la cuenta de prueba.

  1. Abre Configuración > Cuentas y sincronización.
  2. Selecciona Agregar cuenta y elige agregar una Cuenta de Google.
  3. Selecciona Siguiente y luego Acceder.
  4. Ingresa el nombre de usuario y la contraseña de la cuenta de publicador o de una cuenta de prueba que esté registrada en la cuenta de publicador.
  5. Selecciona Acceder. El sistema te hará acceder a la nueva cuenta.

Una vez que hayas accedido, podrás comenzar a probar las licencias en tu aplicación (si completaste los pasos de integración de la LVL que se indicaron antes). Cuando tu aplicación inicie una verificación de licencias, recibirá una respuesta que contendrá la respuesta de prueba estática configurada en la cuenta de publicador.

Ten en cuenta que, si estás utilizando un emulador, deberás acceder a la cuenta de publicador o a la cuenta de prueba cada vez que borres datos al reiniciar el emulador.

Una vez que hayas completado los procedimientos de configuración, continúa con la sección Cómo agregar licencias a tu app.