Configurer la gestion des licences

Avant de commencer à ajouter la validation des licences à votre application, vous devez configurer votre compte d'éditeur Google Play, votre environnement de développement et tous les comptes de test requis pour valider votre implémentation.

Configurer un compte d'éditeur

Si vous n'avez pas encore de compte d'éditeur Google Play, vous devez en créer un à l'aide de votre compte Google et accepter les conditions d'utilisation de Google Play.

Pour en savoir plus, consultez Premiers pas avec la publication.

Si vous disposez déjà d'un compte d'éditeur sur Google Play, configurez les licences dans la Play Console.

La Google Play Console vous permet d'effectuer les tâches suivantes :

  • Obtenir une clé publique spécifique à l'application pour l'attribution des licences
  • Déboguer et tester l'implémentation des licences d'une application avant de la publier
  • Publier les applications pour lesquelles vous avez ajouté la prise en charge des licences

Paramètres d'administration des licences

Vous pouvez gérer plusieurs commandes d'administration des licences Google Play dans la Play Console. Ces commandes vous permettent d'effectuer les actions suivantes :

  • Configurez plusieurs comptes de test identifiés par une adresse e-mail. Le serveur de gestion des licences permet aux utilisateurs connectés à un compte de test sur un appareil ou dans un émulateur d'envoyer des vérifications de licence et de recevoir des réponses test statiques. Vous pouvez configurer des comptes sur la page "Détails du compte" de la Play Console.
  • Configurez les réponses test statiques que le serveur envoie (lorsqu'il reçoit une vérification de licence pour une application importée dans le compte d'éditeur) à partir d'un utilisateur connecté au compte d'éditeur ou dans un compte de test. Vous pouvez définir des réponses test sur la page "Détails du compte" de la Play Console.
  • Obtenez la clé publique de l'application pour l'attribution des licences. Lorsque vous implémentez des licences dans une application, vous devez copier la chaîne de clé publique dans l'application. Vous pouvez obtenir la clé publique d'attribution de licence de l'application sur la page "Services et API" (sous "Toutes les applications").

Figure 1 : La clé de licence d'une application est disponible sur la page "Services et API" de la Play Console

Pour en savoir plus sur l'utilisation des comptes de test et des réponses test statiques, consultez la section Configurer un environnement de test ci-dessous.

Configurer l'environnement de développement

La configuration de votre environnement pour l'attribution de licences implique les tâches suivantes :

  1. Configurer l'environnement d'exécution pour le développement
  2. Télécharger le fichier LVL dans le SDK
  3. Configurer la bibliothèque License Verification Library (LVL)
  4. Inclure le projet de bibliothèque LVL dans votre application

Les sections ci-dessous détaillent les étapes précédemment citées. Une fois la configuration terminée, vous pouvez commencer à ajouter des licences à votre application.

Pour commencer, vous devez configurer un environnement d'exécution approprié dans lequel vous pouvez exécuter, déboguer et tester l'implémentation de la vérification des licences et leur mise en application.

Configurer l'environnement d'exécution

Comme décrit précédemment, les applications vérifient l'état des licences non pas en contactant directement le serveur de gestion des licences, mais en s'associant à un service fourni par l'application Google Play et en lançant une requête de vérification de licence. Le service Google Play gère ensuite la communication directe avec le serveur de gestion des licences, puis achemine la réponse vers votre application. Pour déboguer et tester les licences dans votre application, vous devez configurer un environnement d'exécution incluant le service Google Play nécessaire. De la sorte, votre application peut envoyer des requêtes de vérification de licence au serveur adéquat.

Deux types d'environnements d'exécution sont possibles :

  • Un appareil Android comprenant l'application Google Play
  • Un émulateur Android exécutant le module complémentaire API Google, niveau d'API 8 (version 2) ou ultérieur

Exécution sur un appareil

Pour déboguer et tester les licences sur un appareil Android, celui-ci doit respecter les conditions suivantes :

  • Exécuter une version compatible d'Android 1.5 ou version ultérieure (niveau d'API 3 ou version ultérieure) et
  • Exécuter une image système sur laquelle l'application cliente Google Play est préinstallée

Si Google Play n'est pas préinstallé sur l'image système, votre application ne pourra pas communiquer avec le serveur de licences Google Play.

Pour obtenir des informations générales sur la configuration d'un appareil destiné au développement d'applications Android, consultez la section Utiliser des appareils physiques.

Exécuter l'application dans un émulateur Android

Si aucun appareil n'est disponible, vous pouvez utiliser un émulateur Android pour déboguer et tester les licences.

Étant donné que les plates-formes Android fournies dans le SDK Android n'incluent pas Google Play, vous devez télécharger la plate-forme du module complémentaire API Google, niveau d'API 8 (ou supérieur) à partir du dépôt du SDK. Après avoir téléchargé le module complémentaire, vous devez créer une configuration AVD qui utilisera cette image système.

Le module complémentaire API Google n'inclut pas le client Google Play complet. Toutefois, il fournit les éléments suivants :

  • Service d'arrière-plan Google Play qui implémente l'interface distante ILicensingService, afin que votre application puisse envoyer des vérifications de licence via le réseau au serveur de gestion des licences
  • Ensemble de services de compte sous-jacents qui vous permet d'ajouter un compte Google sur l'AVD et de vous connecter à l'aide de vos identifiants de compte d'éditeur ou de compte test

    L'authentification à l'aide de votre compte d'éditeur ou de test vous permet de déboguer et de tester votre application sans l'avoir publiée. Pour en savoir plus, consultez la section Se connecter à un compte autorisé ci-dessous.

Plusieurs versions du module complémentaire API Google sont disponibles via SDK Manager, mais seule la version pour Android 2.2 et versions ultérieures inclut les services Google Play nécessaires.

Pour configurer un émulateur afin d'ajouter des licences à une application, procédez comme suit :

  1. Lancez Android SDK Manager à partir du menu "Outils" d'Android Studio (Outils > Android > SDK Manager) ou en exécutant <sdk>/tools/android sdk.
  2. Sélectionnez et téléchargez API Google pour la version d'Android que vous souhaitez cibler (Android 2.2 ou version ultérieure).
  3. Une fois le téléchargement terminé, ouvrez AVD Manager à partir du menu "Outils" d'Android Studio (Outils > Android > AVD Manager) ou en exécutant <sdk>/tools/android avd.
  4. Dans la fenêtre Gestionnaire d'appareils virtuels Android, sélectionnez + Créer un appareil virtuel pour définir les détails de configuration du nouvel AVD.
  5. Dans la fenêtre Configuration d'appareils virtuels, sélectionnez le matériel de l'appareil, puis cliquez sur Suivant.
  6. Sélectionnez une API Google comme image système à exécuter sur le nouvel AVD, puis sélectionnez Suivant.
  7. Attribuez un nom descriptif à l'AVD, puis définissez les autres détails de configuration si nécessaire.
  8. Sélectionnez Terminer pour créer la configuration AVD, qui apparaîtra dans la liste des appareils virtuels Android disponibles.

Si vous ne connaissez pas bien les AVD ou si vous ne savez pas comment les utiliser, consultez la section Gérer les appareils virtuels.

Mettre à jour la configuration de votre projet

Après avoir configuré un environnement d'exécution répondant aux exigences décrites ci-dessus (sur un appareil réel ou sur un émulateur), veillez à mettre à jour votre projet d'application ou à créer les scripts nécessaires. Les fichiers .apk qui utilisent des licences seront ainsi déployés dans cet environnement. Plus spécifiquement, si vous développez dans Android Studio, veillez à définir une configuration d'exécution/de débogage qui cible l'appareil ou l'AVD approprié.

Vous n'avez pas besoin de modifier la configuration de compilation de votre application, à condition que le projet soit déjà configuré à cet effet sur une bibliothèque Android 1.5 (niveau d'API 3) standard ou version supérieure. L'ajout de licences à une application ne devrait avoir aucun impact sur la configuration de compilation de l'application.

Télécharger la bibliothèque LVL

La bibliothèque LVL (License Verification Library) constitue un ensemble de classes d'assistance qui simplifient considérablement les tâches nécessaires pour ajouter des licences à votre application. Dans tous les cas, nous vous recommandons de télécharger cette bibliothèque et de l'utiliser comme base pour l'implémentation des licences dans votre application.

La bibliothèque LVL (License Verification Library) est développée sur GitHub. Vous pouvez cloner le dépôt LVL et le définir en tant que projet de bibliothèque. Pour cloner le dépôt, saisissez l'extrait suivant dans la ligne de commande :

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

Le dépôt comprend les éléments suivants:

  • Sources LVL, stockées dans un projet de bibliothèque Android.
  • Un exemple d'application appelé "sample" qui dépend du projet de bibliothèque LVL. Cet exemple montre comment une application utilise les classes d'assistance de la bibliothèque pour vérifier et appliquer les licences.

Configurer la bibliothèque License Verification Library (LVL)

Après avoir téléchargé la bibliothèque LVL sur votre ordinateur, vous devez la configurer dans votre environnement de développement, soit en tant que projet de bibliothèque Android, soit en copiant (ou en important) les sources de la bibliothèque directement dans votre package d'application existant. En règle générale, nous vous recommandons d'utiliser cette bibliothèque comme projet de bibliothèque, car il vous permet de réutiliser le code de licence dans plusieurs applications et de le gérer plus facilement au fil du temps. Notez que la bibliothèque LVL n'est pas conçue pour être compilé séparément et ajoutée à une application sous forme de fichier .jar statique.

La méthode recommandée pour utiliser la bibliothèque LVL consiste à la configurer en tant que nouveau projet de bibliothèque Android. Un projet de bibliothèque est un type de projet de développement qui contient le code source et les ressources Android partagés. D'autres projets d'application Android peuvent référencer le projet de bibliothèque et, au moment de la compilation, inclure ses sources compilées dans leurs fichiers .apk. Dans le contexte de l'attribution de licences, cela signifie que vous pouvez effectuer la majeure partie du développement des licences une seule fois dans un projet de bibliothèque, puis inclure les sources de la bibliothèque dans vos différents projets d'application. De cette manière, vous assurez facilement une implémentation uniforme et centralisée des licences pour tous vos projets et la gérer de manière centralisée. Si vous ne connaissez pas les projets de bibliothèque ou si vous ne savez pas comment les utiliser, consultez la section Gérer des projets.

La bibliothèque LVL est fournie en tant que projet de bibliothèque configuré. Une fois que vous l'avez téléchargé, vous pouvez commencer à l'utiliser immédiatement.

Si vous travaillez dans Android Studio, vous devez ajouter cette bibliothèque à votre projet en tant que nouveau module.

  1. Utilisez la fenêtre "Importer un module depuis la source" pour importer un module de bibliothèque. Pour ce faire, sélectionnez Fichier > Nouveau > Module d'importation.
  2. Dans la fenêtre Importer un module depuis la source, dans le répertoire source, indiquez le répertoire library de la bibliothèque LVL (répertoire contenant le fichier AndroidManifest.xml de la bibliothèque) comme racine du projet (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml), puis sélectionnez Suivant.
  3. Sélectionnez Terminer pour importer le module de bibliothèque.

Pour en savoir plus sur l'utilisation des modules de bibliothèque dans Android Studio, consultez la section Créer une bibliothèque Android.

Inclure le projet de bibliothèque LVL dans votre application

Si vous souhaitez utiliser les sources LVL comme projet de bibliothèque, vous devez y ajouter une référence dans les propriétés de votre projet d'application. Vous indiquez ainsi aux outils de compilation d'inclure les sources de projet de la bibliothèque LVL dans votre application au moment de la compilation. Le processus d'ajout d'une référence à un projet de bibliothèque dépend de votre environnement de développement, comme décrit ci-dessous.

Si vous effectuez le développement dans Android Studio, vous devriez déjà avoir ajouté le module de bibliothèque à votre projet, comme décrit dans la section précédente. Si ce n'est pas le cas, procédez maintenant avant de continuer.

Si vous effectuez le développement à l'aide des outils de ligne de commande du SDK, accédez au répertoire contenant votre projet d'application et ouvrez le fichier project.properties. Ajoutez dans le fichier une ligne spécifiant la clé android.library.reference.<n> et le chemin d'accès à la bibliothèque. Par exemple :

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

Vous pouvez également utiliser cette commande pour mettre à jour les propriétés du projet, y compris la référence au projet de bibliothèque :

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

Pour en savoir plus sur l'utilisation des projets de bibliothèque, consultez la section Configurer un projet de bibliothèque.

Configurer l'environnement de test

La Google Play Console fournit des outils de configuration qui permettent, à vous et à d'autres personnes, de tester les licences de votre application avant sa publication. Lors de la mise en œuvre de l'attribution des licences, vous pouvez utiliser les outils de la Play Console pour tester la stratégie de votre application et gérer différents comportements d'attribution de licences ainsi que différentes conditions d'erreur.

Voici les principaux composants de l'environnement de test pour l'attribution des licences :

  • Une configuration "Réponse test" dans le compte d'éditeur, qui permet de définir la réponse d'attribution de licence statique renvoyée, lorsque le serveur vérifie une licence pour une application importée dans le compte d'éditeur, à partir d'un utilisateur connecté au compte d'éditeur ou à un compte de test
  • Un ensemble facultatif de comptes de test qui reçoivent la réponse test statique lorsqu'ils vérifient la licence d'une application que vous avez importée (que l'application soit publiée ou non)
  • Un environnement d'exécution de l'application comprenant l'application Google Play ou le module complémentaire API Google, sur lequel l'utilisateur est connecté au compte d'éditeur ou à l'un des comptes de test

La configuration correcte de l'environnement de test implique les étapes suivantes :

  1. Définir les réponses test statiques renvoyées par le serveur de gestion des licences
  2. Configurer les comptes de test nécessaires
  3. Se connecter à un émulateur ou à un appareil avant de lancer un test de vérification de licence

Lisez les sections suivantes pour en savoir plus.

Définir des réponses test pour les vérifications de licence

Google Play fournit un paramètre de configuration dans votre compte d'éditeur qui vous permet d'ignorer le traitement normal d'une vérification de licence et de renvoyer un code de réponse statique spécifié. Ce paramètre ne concerne que les tests et s'applique uniquement aux vérifications de licence des applications que vous avez importées, demandées par tout utilisateur connecté à un émulateur ou à un appareil à l'aide des identifiants du compte d'éditeur ou d'un compte de test enregistré. Pour les autres utilisateurs, le serveur vérifie toujours les licences conformément aux règles habituelles.

Afin de définir une réponse test pour votre compte, connectez-vous à votre compte d'éditeur, puis cliquez sur "Modifier le profil". Sur la page "Modifier le profil", localisez le menu "Réponse test" dans le panneau "Gestion des licences", comme illustré ci-dessous. Vous pouvez choisir parmi l'ensemble des codes de réponse du serveur valides pour contrôler la réponse ou la condition que vous souhaitez tester dans votre application.

En général, vous devez vous assurer de tester l'implémentation de la licence de votre application avec tous les codes de réponse disponibles dans le menu "Réponse test". Pour obtenir une description des codes, consultez la section Codes de réponse du serveur dans la documentation de référence sur les licences.

Figure 2. Le panneau "Test de licence" de la page "Détails du compte" vous permet de configurer des comptes de test et de gérer les réponses tests

Notez que la réponse test que vous configurez s'applique à l'ensemble du compte, c'est-à-dire non pas à une seule application, mais à toutes les applications associées au compte d'éditeur. Si vous testez plusieurs applications à la fois, la modification de la réponse test aura une incidence sur toutes ces applications lors de la prochaine vérification de licence (si l'utilisateur est connecté à l'émulateur ou à l'appareil à l'aide du compte d'éditeur ou d'un compte test).

Avant de pouvoir recevoir une réponse test pour une vérification de licence, vous devez vous connecter à l'appareil ou à l'émulateur sur lequel l'application est installée et à partir duquel elle interroge le serveur. Plus précisément, vous devez vous connecter à l'aide de votre compte d'éditeur ou de l'un des comptes de test que vous avez configurés. Pour en savoir plus sur les comptes de test, consultez la section suivante.

Reportez-vous aux codes de réponse du serveur pour obtenir la liste des réponses test disponibles et leur signification.

Configurer des comptes de test

Il peut arriver que vous souhaitiez autoriser plusieurs équipes de développeurs à tester les licences sur des applications qui finiront par être publiées via votre compte d'éditeur, mais sans leur donner accès aux identifiants de votre compte d'éditeur. Pour répondre à ce besoin, la Google Play Console vous permet de configurer un ou plusieurs comptes de test. Ces comptes sont autorisés à interroger le serveur de gestion des licences et à recevoir des réponses test statiques depuis votre compte d'éditeur.

Il s'agit de comptes Google standards que vous enregistrez dans votre compte d'éditeur. Ils reçoivent ainsi la réponse test pour les applications que vous avez importées. Les développeurs peuvent ensuite se connecter à leur appareil ou l'émulateur à l'aide des identifiants du compte de test, et lancer des vérifications de licence à partir des applications installées. Lorsque le serveur de gestion des licences reçoit une vérification de licence de la part d'un utilisateur d'un compte de test, il renvoie la réponse test statique configurée pour le compte d'éditeur.

Bien entendu, l'accès et les autorisations accordés aux utilisateurs connectés via des comptes de test sont soumis à des restrictions :

  • Les utilisateurs du compte test ne peuvent interroger le serveur de gestion des licences que pour les applications déjà importées dans le compte d'éditeur.
  • Les utilisateurs du compte de test ne sont pas autorisés à importer des applications dans votre compte d'éditeur.
  • Les utilisateurs du compte de test ne sont pas autorisés à définir la réponse test statique du compte d'éditeur.

Le tableau ci-dessous récapitule les différences de fonctionnalités entre le compte d'éditeur, un compte de test et tout autre compte.

Tableau 1. Différences entre les types de comptes utilisés pour tester les licences

Type de compte Vérification de la licence avant l'importation ? Réception d'une réponse test ? Définition d'une réponse test ?
Compte d'éditeur Oui Oui Oui
Compte test Non Oui Non
Autre Non Non Non

Enregistrement des comptes de test sur le compte d'éditeur

Pour commencer, vous devez enregistrer chaque compte de test dans votre compte d'éditeur. Comme le montre la figure 2, vous enregistrez les comptes de test dans le panneau "Gestion des licences" de la page "Modifier le profil" de votre compte d'éditeur. Saisissez simplement les comptes sous forme de liste d'éléments séparés par une virgule, puis cliquez sur Enregistrer pour enregistrer les modifications apportées à votre profil.

Vous pouvez utiliser n'importe quel compte Google comme compte de test. Si vous souhaitez que les comptes de test de vous appartiennent et si vous souhaitez en garder le contrôle, vous pouvez créer les comptes vous-même et distribuer les identifiants aux développeurs ou aux testeurs.

Gérer l'importation et la distribution des applications pour les utilisateurs de comptes de test

Comme indiqué ci-dessus, les utilisateurs de comptes de test ne peuvent recevoir des réponses test statiques que pour les applications déjà importées dans le compte d'éditeur. Étant donné que ces utilisateurs ne sont pas autorisés à importer des applications, vous devez, en tant qu'éditeur, collaborer avec eux pour collecter les applications à importer et les distribuer afin de les tester. Vous pouvez gérer la collecte et la distribution de la manière qui vous convient.

Une fois qu'une application est importée et connue du serveur de gestion des licences, les développeurs et les testeurs peuvent continuer à la modifier dans leur environnement de développement local, sans avoir à importer de nouvelles versions. Vous ne devez importer une nouvelle version que si l'application locale incrémente l'attribut versionCode dans le fichier manifeste.

Distribuer votre clé publique aux utilisateurs des comptes de test

Le serveur de gestion des licences gère normalement les réponses test statiques, y compris la signature des données de réponse de licence, l'ajout de paramètres supplémentaires, etc. Pour aider les développeurs qui implémentent des licences à l'aide de comptes de test au lieu du compte d'éditeur, vous devez leur distribuer la clé publique de l'application. Les développeurs qui n'ont pas accès à la Play Console n'ont pas accès à la clé publique de l'application. Sans elle, ils ne peuvent pas vérifier les réponses aux licences.

Notez que si vous décidez de générer une nouvelle paire de clés de licence pour l'application pour une raison quelconque, vous devez en informer tous les utilisateurs des comptes de test. Pour les testeurs, vous pouvez intégrer la nouvelle clé dans le package de l'application et la distribuer aux utilisateurs. Pour les développeurs, vous devrez leur envoyer directement la nouvelle clé.

Se connecter à un compte autorisé dans l'environnement d'exécution

Le service de gestion de licence est conçu pour déterminer si un utilisateur donné dispose de la licence nécessaire pour utiliser une application donnée. Lors de la vérification de la licence, l'application Google Play collecte l'ID utilisateur à partir du compte principal sur le système et l'envoie au serveur, avec le nom du package de l'application et d'autres informations. Toutefois, si aucune information sur l'utilisateur n'est disponible, la vérification de la licence ne peut pas aboutir. L'application Google Play met donc fin à la requête et renvoie une erreur à l'application.

Au cours des tests, pour vous assurer que votre application peut interroger le serveur de licence, connectez-vous à un compte sur l'appareil ou l'émulateur avec les éléments suivants :

  • Identifiants d'un compte d'éditeur
  • Identifiants d'un compte de test enregistré auprès d'un compte d'éditeur

La connexion à l'aide d'un compte d'éditeur offre l'avantage de permettre à vos applications de recevoir des réponses test statiques avant même qu'elles ne soient importées dans la Play Console.

Si vous faites partie d'une organisation de grande envergure ou que vous travaillez avec des équipes externes sur des applications qui sont publiées via votre site, il est souvent préférable de distribuer des comptes de test, puis les utiliser pour vous connecter pendant les tests.

Pour vous connecter sur un appareil ou dans un émulateur, procédez comme suit : Il est recommandé de se connecter en tant que compte principal. Toutefois, si d'autres comptes sont déjà utilisés sur l'appareil ou dans l'émulateur, vous pouvez créer un compte supplémentaire et vous y connecter à l'aide des identifiants du compte d'éditeur ou du compte de test.

  1. Ouvrez Paramètres > Comptes et synchronisation.
  2. Sélectionnez Ajouter un compte, puis choisissez d'ajouter un compte Google.
  3. Sélectionnez Suivant, puis Connexion.
  4. Saisissez le nom d'utilisateur et le mot de passe du compte d'éditeur ou d'un compte de test enregistré dans le compte d'éditeur.
  5. Sélectionnez Se connecter. Le système vous connecte au nouveau compte.

Une fois connecté, vous pouvez commencer à tester les licences dans votre application (si vous avez terminé les étapes d'intégration de bibliothèque LVL décrites plus haut). Lorsque votre application lance une vérification des licences, elle reçoit une réponse contenant la réponse test statique configurée sur le compte d'éditeur.

Notez que si vous utilisez un émulateur, vous devez vous connecter au compte d'éditeur ou au compte de test chaque fois que vous effacez des données au redémarrage de l'émulateur.

Une fois les procédures de configuration terminées, passez à la section Ajouter des licences à votre application.