Configurazione delle licenze

Prima di iniziare ad aggiungere la verifica delle licenze alla tua applicazione, devi configurare il tuo account di pubblicazione Google Play, il tuo ambiente di sviluppo e gli eventuali account di test necessari per verificare l'implementazione.

Impostazione di un account editore

Se non hai ancora un account editore per Google Play, devi crearne uno utilizzando il tuo Account Google e accettare i Termini di servizio di Google Play.

Per ulteriori informazioni, consulta la guida introduttiva alla pubblicazione.

Se hai già un account editore su Google Play, utilizza Play Console per impostare le licenze.

Con Google Play Console puoi:

  • Ottenere una chiave pubblica specifica dell'app per la licenza
  • Eseguire il debug e testare l'implementazione delle licenze di un'applicazione prima di pubblicarla
  • Pubblica le applicazioni per cui hai aggiunto supporto per le licenze

Impostazioni amministrative per le licenze

Puoi gestire diversi controlli amministrativi per le licenze di Google Play in Play Console. I controlli ti consentono di:

  • Imposta più "account di prova", identificati in base all'indirizzo email. Il server di licenze consente agli utenti che hanno eseguito l'accesso agli account di prova su un dispositivo o un emulatore per inviare controlli delle licenze e ricevere risposte di test statici. Puoi configurare gli account nella pagina Dettagli account di Play Console.
  • Configura le risposte al test statico inviate dal server quando riceve un controllo della licenza per un'applicazione caricata nell'account editore, da un utente che ha eseguito l'accesso all'account editore o a un account di prova. Puoi impostare le risposte al test nella pagina Dettagli account di Play Console.
  • Ottieni la chiave pubblica dell'app per la licenza. Quando implementi le licenze in un'applicazione, devi copiare la stringa della chiave pubblica nell'applicazione. Puoi ottenere la chiave pubblica dell'app per la licenza nella pagina Servizi e API (in Tutte le applicazioni).

Figura 1. Il codice licenza di un'app è disponibile nella pagina Servizi e API di Play Console.

Per ulteriori informazioni su come utilizzare gli account di test e le risposte dei test statici, consulta la sezione Configurazione di un ambiente di test di seguito.

Configurazione dell'ambiente di sviluppo

La configurazione dell'ambiente per le licenze prevede le seguenti attività:

  1. Configurazione dell'ambiente di runtime per lo sviluppo
  2. Download dell'LVL nell'SDK
  3. Configurazione della libreria di verifica delle licenze
  4. Inclusione del progetto della libreria LVL nell'applicazione

Queste attività sono descritte nelle sezioni seguenti. Al termine della configurazione, puoi iniziare ad aggiungere licenze all'app.

Per iniziare, devi configurare un ambiente di runtime adeguato in cui eseguire, eseguire il debug e testare l'implementazione della funzionalità di controllo e applicazione delle licenze da parte della tua applicazione.

Configurazione dell'ambiente di runtime

Come descritto in precedenza, le applicazioni verificano lo stato delle licenze non contattando direttamente il server di licenze, ma associandosi a un servizio fornito dall'applicazione Google Play e avviando una richiesta di controllo delle licenze. Il servizio Google Play gestisce quindi la comunicazione diretta con il server di licenze e, infine, reindirizza la risposta alla tua applicazione. Per eseguire il debug e il test delle licenze nella tua applicazione, devi configurare un ambiente di runtime che includa il servizio Google Play necessario, in modo che l'applicazione possa inviare richieste di controllo delle licenze al server di licenze.

Puoi utilizzare due tipi di ambiente di runtime:

  • Un dispositivo Android che includa l'applicazione Google Play; oppure
  • Un emulatore Android che esegue il componente aggiuntivo API di Google, livello API 8 (versione 2) o successiva

In esecuzione su un dispositivo

Per utilizzare un dispositivo Android per il debug e il test delle licenze, il dispositivo deve:

  • Eseguire una piattaforma compatibile con Android 1.5 o versioni successive (livello API 3 o versioni successive) e
  • Esegui un'immagine di sistema su cui è preinstallata l'applicazione client Google Play.

Se Google Play non è preinstallato nell'immagine di sistema, la tua applicazione non potrà comunicare con il server di licenze di Google Play.

Per informazioni generali su come configurare un dispositivo per l'utilizzo per lo sviluppo di applicazioni Android, consulta Utilizzo di dispositivi hardware.

In esecuzione su un emulatore Android

Se non hai un dispositivo a disposizione, puoi usare un emulatore Android per il debug e il test delle licenze.

Poiché le piattaforme Android fornite nell'SDK Android non includono Google Play, devi scaricare la piattaforma Componente aggiuntivo delle API di Google livello API 8 (o successivo) dal repository dell'SDK. Dopo aver scaricato il componente aggiuntivo, devi creare una configurazione AVD che utilizzi quell'immagine di sistema.

Il componente aggiuntivo API di Google non include il client Google Play completo. Tuttavia, fornisce:

  • Un servizio in background di Google Play che implementa l'interfaccia remota ILicensingService, in modo che la tua applicazione possa inviare controlli delle licenze sulla rete al server di licenze.
  • Un insieme di servizi dell'account sottostanti che ti consentono di aggiungere un Account Google nella Durata di visualizzazione dei video e di accedere utilizzando il tuo account editore o le credenziali dell'account di test.

    Se accedi con il tuo account publisher o di test, puoi eseguire il debug e testare la tua applicazione senza doverla pubblicare. Per ulteriori informazioni, consulta la sezione Accedere a un account autorizzato di seguito.

Tramite SDK Manager sono disponibili diverse versioni del componente aggiuntivo delle API di Google, ma solo la versione per Android 2.2 e versioni successive include i servizi Google Play necessari.

Per configurare un emulatore per aggiungere licenze a un'applicazione, procedi nel seguente modo:

  1. Avvia Android SDK Manager, disponibile nel menu Strumenti di Android Studio (Strumenti > Android > SDK Manager) oppure eseguendo l'operazione <sdk>/tools/android sdk.
  2. Seleziona e scarica le API di Google per la versione di Android che vuoi scegliere come target (Android 2.2 o versioni successive).
  3. Al termine del download, apri Gestione AVD, disponibile nel menu Strumenti di Android Studio (Strumenti > Android > Gestione AVD) oppure eseguendo <sdk>/tools/android avd.
  4. Nella finestra Gestione dispositivi virtuali Android, seleziona + Crea dispositivo virtuale per impostare i dettagli di configurazione per la nuova durata di visualizzazione media.
  5. Nella finestra Configurazione dispositivo virtuale, seleziona l'hardware del dispositivo, quindi Avanti.
  6. Seleziona un'API di Google come immagine di sistema da eseguire nella nuova durata di visualizzazione media, quindi seleziona Avanti.
  7. Assegna un nome descrittivo alla durata di visualizzazione media, quindi imposta gli altri dettagli di configurazione in base alle esigenze.
  8. Seleziona Fine per creare la nuova configurazione AVD, che verrà visualizzata nell'elenco dei dispositivi virtuali Android disponibili.

Se non hai familiarità con le AVD o come utilizzarle, consulta la sezione Gestione dei dispositivi virtuali.

Aggiornamento della configurazione del progetto

Dopo aver configurato un ambiente di runtime che soddisfi i requisiti descritti sopra, su un dispositivo reale o su un emulatore, assicurati di aggiornare il progetto dell'applicazione o gli script di build come necessario, in modo che i file .apk compilati che utilizzano licenze vengano distribuiti in quell'ambiente. In particolare, se stai sviluppando in Android Studio, assicurati di impostare una configurazione di esecuzione/debug che abbia come target il dispositivo o la durata di visualizzazione media appropriati.

Non è necessario apportare modifiche alla configurazione della build della tua applicazione, purché il progetto sia già configurato per la compilazione con una libreria Android 1.5 (livello API 3) o superiore standard. L'aggiunta di licenze a un'applicazione non dovrebbe avere alcun impatto sulla configurazione della build dell'applicazione.

Download dell'LVL

La License Verification Library (LVL) è una raccolta di classi helper che semplificano notevolmente il lavoro da eseguire per aggiungere licenze alla tua applicazione. In tutti i casi, ti consigliamo di scaricare il LVL e utilizzarlo come base per l'implementazione delle licenze nella tua applicazione.

La License Verification Library (LVL) è sviluppata su GitHub. Puoi clonare il repository LVL e impostarlo come progetto di libreria. Clona il repository digitando nella riga di comando quanto segue:

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

Il repository include:

  • Le origini LVL archiviate all'interno di un progetto libreria Android.
  • Un'applicazione di esempio denominata "sample" che dipende dal progetto di libreria LVL. L'esempio illustra come un'applicazione utilizza le classi helper della libreria per controllare e applicare le licenze.

Configurazione della libreria di verifica delle licenze

Dopo aver scaricato l'LVL sul computer, devi configurarlo nel tuo ambiente di sviluppo, come progetto di libreria Android oppure copiando (o importando) le origini della libreria direttamente nel pacchetto dell'applicazione esistente. In generale, si consiglia di utilizzare l'LVL come progetto di libreria, poiché consente di riutilizzare il codice delle licenze in più applicazioni e gestirlo più facilmente nel tempo. Tieni presente che l'LVL non è progettato per essere compilato separatamente e aggiunto a un'applicazione come file .jar statico.

Il modo consigliato di utilizzare l'LVL è configurarlo come nuovo progetto di libreria Android. Un progetto "libreria" è un tipo di progetto di sviluppo che contiene risorse e codice sorgente Android. Altri progetti di applicazioni Android possono fare riferimento al progetto della libreria e, al momento della creazione, includere le relative origini compilate nei file .apk. Nell'ambito delle licenze, questo significa che puoi svolgere la maggior parte dello sviluppo delle licenze una sola volta, in un progetto di libreria, quindi includere le origini delle librerie nei vari progetti dell'applicazione. In questo modo, puoi mantenere facilmente un'implementazione uniforme delle licenze in tutti i tuoi progetti e gestirla a livello centrale. Se non hai dimestichezza con i progetti di libreria o come utilizzarli, consulta Gestione dei progetti.

L'LVL viene fornito come progetto di libreria configurato: dopo averlo scaricato, puoi iniziare subito a utilizzarlo.

Se utilizzi Android Studio, devi aggiungere il LVL al tuo progetto come nuovo modulo.

  1. Utilizza la finestra "Importa modulo dall'origine" per importare un modulo della libreria selezionando File > Nuovo > Importa modulo.
  2. Nella finestra Importa modulo dall'origine, in Directory di origine, inserisci la directory library dell'LVL (la directory contenente il file AndroidManifest.xml della libreria) come root del progetto (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml), quindi seleziona Avanti.
  3. Seleziona Fine per importare il modulo della libreria.

Per ulteriori informazioni su come utilizzare i moduli della libreria in Android Studio, consulta Creare una libreria Android.

Includere le origini del progetto della libreria LVL nell'applicazione

Se vuoi utilizzare le origini LVL come progetto di libreria, devi aggiungere un riferimento al progetto della libreria LVL nelle proprietà del progetto dell'applicazione. Questo indica agli strumenti di creazione di includere le origini del progetto della libreria LVL nell'applicazione al momento della compilazione. Il processo per aggiungere un riferimento a un progetto di libreria dipende dall'ambiente di sviluppo, come descritto di seguito.

Se stai sviluppando in Android Studio, dovresti aver già aggiunto il modulo della libreria al tuo progetto, come descritto nella sezione precedente. Se non l'hai già fatto, fallo ora prima di continuare.

Se stai sviluppando il programma utilizzando gli strumenti a riga di comando dell'SDK, vai alla directory contenente il progetto dell'applicazione e apri il file project.properties. Aggiungi una riga al file che specifichi la chiave android.library.reference.<n> e il percorso della libreria. Ecco alcuni esempi:

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

In alternativa, puoi utilizzare questo comando per aggiornare le proprietà del progetto, incluso il riferimento al progetto di libreria:

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

Per ulteriori informazioni sull'utilizzo dei progetti di libreria, consulta Configurare un progetto Biblioteche.

Configurazione dell'ambiente di test

Google Play Console fornisce strumenti di configurazione che consentono a te e ad altri di testare le licenze della tua applicazione prima che venga pubblicata. Durante l'implementazione delle licenze, puoi utilizzare gli strumenti di Play Console per testare le norme della tua applicazione e gestire diverse risposte relative alle licenze e condizioni di errore.

I componenti principali dell'ambiente di test per le licenze includono:

  • Una configurazione "Risposta di prova" nel tuo account editore che ti consente di impostare la risposta relativa alle licenze statiche restituite quando il server elabora un controllo della licenza per un'applicazione caricata nell'account editore, da un utente che ha eseguito l'accesso all'account editore o a un account di prova.
  • Un insieme facoltativo di account di test che riceveranno la risposta del test statico quando controllano la licenza di un'applicazione che hai caricato (indipendentemente dal fatto che l'applicazione sia pubblicata o meno).
  • Un ambiente di runtime per l'applicazione che include l'applicazione Google Play o il componente aggiuntivo API di Google, sul quale l'utente ha eseguito l'accesso all'account editore o a uno degli account di prova.

La corretta configurazione dell'ambiente di test prevede:

  1. Impostare risposte di test statici restituite dal server di licenze.
  2. Configura gli account di prova secondo necessità.
  3. Accedere correttamente a un emulatore o a un dispositivo prima di iniziare un test di controllo delle licenze.

Le sezioni seguenti forniscono ulteriori informazioni.

Impostazione delle risposte di test per i controlli delle licenze

Google Play fornisce un'impostazione di configurazione nel tuo account editore che ti consente di ignorare la normale elaborazione di un controllo delle licenze e di restituire un codice di risposta statico specificato. L'impostazione è solo a scopo di test e si applica solo ai controlli delle licenze per le applicazioni che hai caricato, effettuate da qualsiasi utente che ha eseguito l'accesso a un emulatore o a un dispositivo utilizzando le credenziali dell'account editore o di un account di test registrato. Per gli altri utenti, il server elabora sempre i controlli delle licenze in base alle normali regole.

Per impostare una risposta di prova per il tuo account, accedi al tuo account editore e fai clic su "Modifica profilo". Nella pagina Modifica profilo, individua il menu Risposta di prova nel riquadro Licenze, mostrato di seguito. Puoi scegliere dall'insieme completo di codici di risposta validi del server per controllare la risposta o la condizione che vuoi testare nella tua applicazione.

In generale, assicurati di testare l'implementazione delle licenze della tua applicazione con ogni codice di risposta disponibile nel menu Risposta di prova. Per una descrizione dei codici, consulta la sezione Codici di risposta del server nella documentazione di riferimento sulle licenze.

Figura 2. Il riquadro Test delle licenze della pagina Dettagli account ti consente di configurare account di test e gestire le risposte di test.

Tieni presente che la risposta di test che configuri si applica a livello di account, ovvero non a una singola applicazione, ma a tutte le applicazioni associate all'account editore. Se stai testando più applicazioni contemporaneamente, la modifica della risposta di test influirà su tutte quelle applicazioni nel controllo della licenza successivo (se l'utente ha eseguito l'accesso all'emulatore o al dispositivo utilizzando l'account editore o un account di prova).

Per poter ricevere correttamente una risposta di prova per un controllo delle licenze, devi accedere al dispositivo o all'emulatore su cui è installata l'applicazione e da cui esegue query al server. In particolare, devi accedere utilizzando il tuo account editore o uno degli account di prova che hai configurato. Per ulteriori informazioni sugli account di prova, consulta la sezione successiva.

Consulta Codici di risposta del server per un elenco delle risposte di test disponibili e il loro significato.

Configurazione degli account di prova

In alcuni casi, potrebbe essere opportuno consentire a più team di sviluppatori di testare le licenze di applicazioni che verranno pubblicate tramite il tuo account editore, ma senza concedere loro l'accesso alle credenziali di accesso del tuo account editore. Per soddisfare questa esigenza, Google Play Console ti consente di configurare uno o più account di prova facoltativi, ovvero account autorizzati a eseguire query sul server di licenze e a ricevere risposte al test statico dal tuo account editore.

Gli account di prova sono Account Google standard che registri nel tuo account editore, in modo che ricevano la risposta di prova per le applicazioni che hai caricato. Gli sviluppatori possono quindi accedere ai propri dispositivi o emulatori utilizzando le credenziali dell'account di prova e avviare controlli delle licenze dalle applicazioni installate. Quando il server di licenze riceve un controllo delle licenze da un utente di un account di prova, restituisce la risposta del test statico configurata per l'account dell'editore.

Sono necessarie le limitazioni relative all'accesso e alle autorizzazioni concesse agli utenti che hanno eseguito l'accesso tramite account di prova, tra cui:

  • Gli utenti dell'account di prova possono eseguire query sul server di licenze solo per le applicazioni già caricate nell'account editore.
  • Gli utenti dell'account di prova non sono autorizzati a caricare applicazioni nel tuo account editore.
  • Gli utenti dell'account di test non sono autorizzati a impostare la risposta di test statica dell'account editore.

La tabella riportata di seguito riassume le differenze di funzionalità tra l'account editore, un account di prova e qualsiasi altro account.

Tabella 1. Differenze nei tipi di account per le licenze di test.

Tipo di account Posso controllare la licenza prima del caricamento? Puoi ricevere la risposta del test? È possibile impostare la risposta del test?
Account editore
Account di test No No
Altro No No No

Registrazione degli account di prova nell'account editore

Per iniziare, devi registrare ogni account di prova nel tuo account editore. Come illustrato nella Figura 2, gli account di prova vengono registrati nel riquadro Licenze della pagina Modifica profilo dell'account dell'editore. Inserisci gli account come elenco delimitato da virgole e fai clic su Salva per salvare le modifiche apportate al profilo.

Puoi utilizzare qualsiasi Account Google come account di prova. Se vuoi possedere e controllare gli account di prova, puoi crearli personalmente e distribuire le credenziali ai tuoi sviluppatori o tester.

Gestione del caricamento e della distribuzione delle app per gli utenti degli account di prova

Come indicato in precedenza, gli utenti degli account di prova possono ricevere risposte di test statiche solo per le applicazioni caricate nell'account editore. Poiché questi utenti non sono autorizzati a caricare applicazioni, in qualità di publisher dovrai collaborare con loro al fine di raccogliere le app da caricare e distribuire le app caricate per i test. Puoi gestire la raccolta e la distribuzione nel modo che ritieni più opportuno.

Una volta che un'applicazione è stata caricata e diventa nota al server di licenze, gli sviluppatori e i tester possono continuare a modificarla nel loro ambiente di sviluppo locale, senza dover caricare nuove versioni. Devi caricare una nuova versione solo se l'applicazione locale incrementa l'attributo versionCode nel file manifest.

Distribuzione della chiave pubblica agli utenti dell'account di test

Il server di licenze gestisce le risposte di test statici normalmente, ad esempio firma i dati di risposta della licenza, aggiungendo parametri extra e così via. Per supportare gli sviluppatori che implementano le licenze utilizzando account di prova anziché l'account publisher, dovrai distribuire loro la chiave pubblica dell'app per ottenere le licenze. Gli sviluppatori che non hanno accesso a Play Console non hanno accesso alla chiave pubblica dell'app e senza la chiave non potranno verificare le risposte alla licenza.

Tieni presente che se per qualche motivo decidi di generare una nuova coppia di chiavi di licenza per l'app, devi informare tutti gli utenti degli account di prova. I tester possono incorporare la nuova chiave nel pacchetto dell'applicazione e distribuirla agli utenti. Gli sviluppatori dovranno distribuire direttamente la nuova chiave.

L'accesso a un account autorizzato nell'ambiente di runtime

Il servizio di licenze è progettato per determinare se un determinato utente dispone della licenza per utilizzare una determinata applicazione: durante il controllo della licenza, l'applicazione Google Play raccoglie l'ID utente dall'account principale del sistema e lo invia al server, insieme al nome del pacchetto dell'applicazione e ad altre informazioni. Tuttavia, se non sono disponibili informazioni sull'utente, il controllo della licenza non riesce e l'applicazione Google Play termina la richiesta e restituisce un errore.

Durante il test, per assicurarti che la tua applicazione sia in grado di eseguire query sul server di licenze, devi assicurarti di accedere a un account sul dispositivo o nell'emulatore utilizzando:

  • Le credenziali di un account editore oppure
  • Le credenziali di un account di prova registrato con un account editore

Se accedi con un account editore, le tue applicazioni riceveranno risposte di test statiche anche prima che vengano caricate in Play Console.

Se fai parte di un'organizzazione più grande o lavori con gruppi esterni su applicazioni che verranno pubblicate sul tuo sito, è più probabile che tu voglia distribuire invece gli account di prova, che utilizzerai per accedere durante i test.

Per accedere su un dispositivo o un emulatore, procedi nel seguente modo. L'approccio preferito è accedere come account principale; tuttavia, se esistono altri account già in uso sul dispositivo o nell'emulatore, puoi creare un account aggiuntivo a cui accedere utilizzando le credenziali dell'account dell'editore o dell'account di prova.

  1. Apri Impostazioni > Account e sincronizzazione
  2. Seleziona Aggiungi account e scegli di aggiungere un Account Google.
  3. Seleziona Avanti e poi Accedi.
  4. Inserisci il nome utente e la password dell'account editore o di un account di prova registrato nell'account editore.
  5. Seleziona Accedi. Il sistema accede al nuovo account.

Una volta eseguito l'accesso, puoi iniziare a testare le licenze nella tua applicazione (se hai completato i passaggi per l'integrazione LVL precedenti). Quando la tua applicazione avvia un controllo delle licenze, riceverà una risposta contenente la risposta al test statico configurata nell'account dell'editore.

Tieni presente che, se usi un emulatore, dovrai accedere all'account editore o all'account di prova ogni volta che cancelli i dati quando riavvii l'emulatore.

Una volta completate le procedure di configurazione, passa ad Aggiunta di licenze all'app.