Configurazione delle licenze

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

Configurare un account editore

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

Per maggiori informazioni, vedi Guida introduttiva alla pubblicazione.

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

Utilizzando 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 a cui hai aggiunto il supporto delle licenze

Impostazioni amministrative per le licenze

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

  • Configura più "account di test", identificati dall'indirizzo email. Il server di gestione delle licenze consente agli utenti che hanno eseguito l'accesso agli account di test su un dispositivo o un emulatore di inviare controlli delle licenze e ricevere risposte di test statiche. Puoi configurare gli account nella pagina Dettagli account di Play Console.
  • Configura le risposte di test statiche 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 test. Puoi impostare le risposte di test nella pagina Dettagli account di Play Console.
  • Ottieni la chiave pubblica dell'app per la gestione delle licenze. 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 gestione delle licenze nella pagina Servizi e API (in Tutte le applicazioni).

Figura 1. La chiave di 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 di test statiche, 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. Scaricare la LVL nell'SDK
  3. Configurare la libreria di verifica delle licenze
  4. Inclusione del progetto della libreria LVL nell'applicazione

Le sezioni seguenti descrivono queste attività. Al termine della configurazione, puoi iniziare ad aggiungere le licenze alla tua app.

Per iniziare, devi configurare un ambiente di runtime appropriato in cui puoi eseguire, eseguire il debug e testare l'implementazione della verifica e dell'applicazione delle licenze della tua applicazione.

Configurazione dell'ambiente di runtime

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

Puoi utilizzare due tipi di ambiente di runtime:

  • Un dispositivo Android che include l'applicazione Google Play oppure
  • Un emulatore Android con il componente aggiuntivo Google APIs, livello API 8 (release 2) o versioni successive

Esecuzione su un dispositivo

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

  • Esegui una versione compatibile della piattaforma Android 1.5 o versioni successive (livello API 3 o superiore), 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 sarà in grado di comunicare con il server di licenze di Google Play.

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

Esecuzione su un emulatore Android

Se non hai un dispositivo disponibile, puoi utilizzare 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 API Google, livello API 8 (o superiore), dal repository SDK. Dopo aver scaricato il componente aggiuntivo, devi creare una configurazione AVD che utilizzi l'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 delle licenze.
  • Un insieme di servizi di account sottostanti che ti consentono di aggiungere un Account Google all'AVD e di accedere utilizzando le credenziali del tuo account editore o dell'account di test.

    L'accesso con il tuo account editore o di test ti consente di eseguire il debug e testare la tua applicazione senza doverla pubblicare. Per ulteriori informazioni, vedi Accedere a un account autorizzato di seguito.

Tramite SDK Manager sono disponibili diverse versioni del componente aggiuntivo Google APIs, 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, segui questi passaggi:

  1. Avvia Android SDK Manager, disponibile nel menu Strumenti di Android Studio (Strumenti > Android > SDK Manager) o eseguendo <sdk>/tools/android sdk.
  2. Seleziona e scarica le API di Google per la versione di Android che vuoi scegliere come target (deve essere Android 2.2 o versioni successive).
  3. Al termine del download, apri AVD Manager, disponibile nel menu Strumenti di Android Studio (Strumenti > Android > AVD Manager) o eseguendo <sdk>/tools/android avd.
  4. Nella finestra Android Virtual Device Manager, seleziona + Create Virtual Device (Crea dispositivo virtuale) per impostare i dettagli di configurazione del nuovo AVD.
  5. Nella finestra Configurazione dispositivo virtuale, seleziona l'hardware del dispositivo, poi seleziona Avanti.
  6. Seleziona un'API di Google come immagine di sistema da eseguire sul nuovo AVD, quindi seleziona Avanti.
  7. Assegna un nome descrittivo all'AVD e poi imposta gli altri dettagli di configurazione in base alle tue 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 gli AVD o con il loro utilizzo, 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 in base alle necessità, in modo che i file .apk compilati che utilizzano le licenze vengano implementati in quell'ambiente. In particolare, se sviluppi in Android Studio, assicurati di configurare una configurazione di esecuzione/debug che abbia come target il dispositivo o l'AVD appropriato.

Non devi apportare modifiche alla configurazione di build dell'applicazione, a condizione che il progetto sia già configurato per la compilazione in base a una libreria Android 1.5 (livello API 3) o versioni successive standard. L'aggiunta di licenze a un'applicazione non dovrebbe avere alcun impatto sulla configurazione della build dell'applicazione.

Download di LVL

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

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

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

Il repository include:

  • Le origini LVL, archiviate all'interno di un progetto di libreria Android.
  • Un'applicazione di esempio denominata "sample" che dipende dal progetto della libreria LVL. L'esempio mostra 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 LVL sul computer, devi configurarlo nel tuo ambiente di sviluppo come progetto di libreria Android o copiando (o importando) le origini della libreria direttamente nel pacchetto dell'applicazione esistente. In generale, è consigliabile utilizzare LVL come progetto di libreria, in quanto consente di riutilizzare il codice di licenza in più applicazioni e di gestirlo più facilmente nel tempo. Tieni presente che la LVL non è progettata per essere compilata separatamente e aggiunta a un'applicazione come file .jar statico.

Il modo consigliato per utilizzare LVL è configurarlo come nuovo progetto di libreria Android. Un progetto di libreria è un tipo di progetto di sviluppo che contiene codice sorgente e risorse Android condivisi. Altri progetti di applicazioni Android possono fare riferimento al progetto della libreria e, al momento della compilazione, includere le sue origini compilate nei file .apk. Nel contesto delle licenze, ciò significa che puoi eseguire la maggior parte dello sviluppo delle licenze una sola volta, in un progetto di libreria, quindi includere le origini della libreria nei vari progetti di 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 familiarità con i progetti di libreria o con il loro utilizzo, consulta Gestione dei progetti.

La LVL viene fornita come progetto di libreria configurato. Una volta scaricata, puoi iniziare a utilizzarla immediatamente.

Se lavori in Android Studio, devi aggiungere LVL al tuo progetto come nuovo modulo.

  1. Utilizza la finestra "Importa modulo dalla sorgente" 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 di LVL (la directory contenente il file AndroidManifest.xml della libreria) come radice del progetto (<sdk>/extras/google/play_licensing/library/AndroidManifest.xml), poi seleziona Avanti.
  3. Seleziona Fine per importare il modulo della raccolta.

Per saperne di più su come utilizzare i moduli della libreria in Android Studio, consulta Creare una libreria Android.

Includere le origini del progetto della libreria LVL nella tua applicazione

Se vuoi utilizzare le origini LVL come progetto di libreria, devi aggiungere un riferimento al progetto di libreria LVL nelle proprietà del progetto dell'applicazione. In questo modo gli strumenti di compilazione includono le origini del progetto della libreria LVL nella tua applicazione in fase di compilazione. La procedura per aggiungere un riferimento a un progetto di libreria dipende dall'ambiente di sviluppo, come descritto di seguito.

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

Se sviluppi 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. Ad esempio:

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 della libreria:

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

Per saperne di più su come lavorare con i progetti delle biblioteche, consulta Configurare un progetto della biblioteca.

Configurazione dell'ambiente di test

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

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

  • Una configurazione "Risposta di test" nel tuo account editore che ti consente di impostare la risposta statica relativa alle licenze restituita 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 test.
  • 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 Google APIs, in cui l'utente ha eseguito l'accesso all'account publisher o a uno degli account di test.

La configurazione corretta dell'ambiente di test prevede:

  1. Impostazione di risposte di test statiche restituite dal server delle licenze.
  2. Configurazione di account di test in base alle necessità.
  3. Accedere correttamente a un emulatore o a un dispositivo prima di avviare un test di verifica della licenza.

Le sezioni seguenti forniscono ulteriori informazioni.

Impostazione delle risposte di test per i controlli delle licenze

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

Per impostare una risposta di test per il tuo account, accedi al tuo account publisher e fai clic su "Modifica profilo". Nella pagina Modifica profilo, individua il menu Test Response nel riquadro Licensing, mostrato di seguito. Puoi scegliere tra il set completo di codici di risposta del server validi per controllare la risposta o la condizione che vuoi testare nella tua applicazione.

In generale, devi assicurarti di testare l'implementazione delle licenze dell'applicazione con ogni codice di risposta disponibile nel menu Risposta di test. Per una descrizione dei codici, consulta Server Response Codes (Codici di risposta del server) nella Guida di riferimento per le licenze.

Figura 2. Il pannello 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 del test influirà su tutte le applicazioni al successivo controllo della licenza (se l'utente ha eseguito l'accesso all'emulatore o al dispositivo utilizzando l'account publisher o un account di test).

Prima di poter ricevere correttamente una risposta di test per un controllo della licenza, devi accedere al dispositivo o all'emulatore su cui è installata l'applicazione e da cui viene eseguita la query sul server. Nello specifico, devi firmare utilizzando il tuo account editore o uno degli account di prova che hai configurato. Per saperne di più sugli account di prova, consulta la sezione successiva.

Consulta la sezione Codici di risposta del server per un elenco delle risposte di test disponibili e dei relativi significati.

Configurazione degli account di test

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

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

Necessariamente, esistono limitazioni all'accesso e alle autorizzazioni concesse agli utenti che hanno eseguito l'accesso tramite account di test, tra cui:

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

La tabella seguente riepiloga le differenze in termini di funzionalità tra l'account editore, un account di test e qualsiasi altro account.

Tabella 1. Differenze nei tipi di account per il test delle licenze.

Tipo di account Can check license before upload? Può ricevere la risposta al test? Può impostare la risposta al test?
Account publisher
Account di test No No
Altro No No No

Registrazione di account di test sull'account editore

Per iniziare, devi registrare ogni account di test nel tuo account editore. Come mostrato nella Figura 2, puoi registrare gli account di test nel pannello Licenze della pagina Modifica profilo del tuo account publisher. Inserisci gli account come elenco separato da virgole e fai clic su Salva per salvare le modifiche al profilo.

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

Gestione del caricamento e della distribuzione delle applicazioni per gli utenti degli account di test

Come accennato in precedenza, gli utenti degli account di test possono ricevere solo risposte di test statiche per le applicazioni caricate nell'account editore. Poiché questi utenti non hanno l'autorizzazione per caricare applicazioni, in qualità di publisher dovrai collaborare con loro per raccogliere le app da caricare e distribuire le app caricate per i test. Puoi gestire la raccolta e la distribuzione nel modo più comodo.

Una volta caricata un'applicazione e resa nota al server di gestione delle licenze, gli sviluppatori e i tester possono continuare a modificare l'applicazione nel proprio 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 delle licenze gestisce le risposte di test statiche nel modo normale, incluso firmare i dati di risposta della licenza, aggiungere parametri extra e così via. Per supportare gli sviluppatori che implementano le licenze utilizzando account di test anziché l'account editore, devi distribuire loro la chiave pubblica dell'app per 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 decidi di generare una nuova coppia di chiavi di licenza per l'app per qualche motivo, devi comunicarlo a tutti gli utenti degli account di test. Per i tester, puoi incorporare la nuova chiave nel pacchetto dell'applicazione e distribuirla agli utenti. Per gli sviluppatori, dovrai distribuire direttamente la nuova chiave.

Accesso a un account autorizzato nell'ambiente di runtime

Il servizio di licenze è progettato per determinare se un determinato utente è autorizzato a utilizzare una determinata applicazione. Durante un 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 può avere esito positivo, quindi l'applicazione Google Play termina la richiesta e restituisce un errore all'applicazione.

Durante il test, per assicurarti che l'applicazione possa eseguire query sul server di licenze, devi accedere a un account sul dispositivo o sull'emulatore utilizzando:

  • Le credenziali di un account publisher oppure
  • Le credenziali di un account di test registrato con un account editore

L'accesso con un account publisher offre il vantaggio di consentire alle tue applicazioni di ricevere risposte di test statiche anche prima che vengano caricate su Play Console.

Se fai parte di un'organizzazione più grande o collabori con gruppi esterni su applicazioni che verranno pubblicate tramite il tuo sito, è più probabile che tu voglia distribuire account di test e utilizzarli per accedere durante il test.

Per accedere su un dispositivo o un emulatore, segui i passaggi riportati di seguito. L'approccio preferito è accedere come account principale. Tuttavia, se sul dispositivo o nell'emulatore sono già in uso altri account, puoi crearne uno aggiuntivo e accedervi utilizzando le credenziali dell'account editore o di test.

  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 esegue l'accesso al nuovo account.

Una volta eseguito l'accesso, puoi iniziare a testare le licenze nella tua applicazione (se hai completato i passaggi di integrazione di LVL riportati sopra). Quando la tua applicazione avvia un controllo della licenza, riceverà una risposta contenente la risposta di test statica configurata nell'account publisher.

Tieni presente che, se utilizzi un emulatore, dovrai accedere all'account editore o all'account di test ogni volta che cancelli i dati al riavvio dell'emulatore.

Una volta completate le procedure di configurazione, continua con Aggiunta delle licenze alla tua app.