Come funzionano gli aggiornamenti delle app

Questa guida spiega in che modo la piattaforma Android e Google Play gestiscono gli aggiornamenti delle app e illustra varie opzioni per gli sviluppatori che pubblicano le proprie app su più store.

In che modo Android gestisce gli aggiornamenti delle app

Ogni app Android ha un ID applicazione univoco che sembra un nome di pacchetto Java o Kotlin, ad esempio com.example.myapp. Questo ID identifica in modo univoco ogni app sul dispositivo. I dispositivi Android possono avere una sola app con un determinato ID applicazione installata alla volta.

Affinché un aggiornamento venga accettato dalla piattaforma Android, è necessario che siano soddisfatte le seguenti condizioni:

  • L'ID applicazione dell'aggiornamento deve corrispondere all'ID dell'app installata.
  • Il certificato di firma dell'aggiornamento deve essere uguale al certificato di firma dell'app installata oppure deve contenere una prova di rotazione valida.
  • Il codice di versione dell'aggiornamento deve essere superiore o uguale al codice di versione dell'app installata.
  • In alcuni casi, l'utente potrebbe dover accettare l'aggiornamento.

Tieni presente che non esiste alcuna prevenzione integrata per i diversi programmi di installazione che aggiornano un'app quando gli aggiornamenti hanno lo stesso certificato di firma e lo stesso codice o una versione successiva.

Per installare un'app che non soddisfa le condizioni indicate sopra, l'utente deve prima disinstallare la versione attualmente installata, che cancella tutti i dati dell'app dal dispositivo.

In che modo Google Play aggiorna le app

L'approccio di Google Play all'aggiornamento delle app si basa sui seguenti principi:

  • Tieni aggiornati gli utenti. Ti consigliamo di mantenere aggiornate le app per proteggere gli utenti dai problemi di sicurezza e sfruttare gli ultimi miglioramenti delle funzionalità.
  • Rispetta la scelta degli utenti. Google Play aggiorna le app associate agli account degli utenti e in base alle preferenze di aggiornamento che hanno scelto, ad esempio consentire o non consentire l'utilizzo dei dati a consumo.
  • Rispetta la scelta degli sviluppatori. Google Play usa le opzioni di configurazione degli sviluppatori per determinare gli aggiornamenti delle app.
  • Evita lo spreco di risorse. Conserva la durata della batteria ottimizzando il download degli aggiornamenti e riduci al minimo l'utilizzo dei dati utilizzando tecniche come compressione e patch.

Per una determinata app installata su un dispositivo, Google Play aggiorna l'app se soddisfa le seguenti condizioni:

  • L'app sia pubblicata su Google Play con lo stesso ID applicazione.
  • Il certificato di firma dell'app pubblicata corrisponde al certificato di firma della versione attualmente installata oppure contiene una prova di rotazione valida.
  • L'app fa parte della libreria dell'utente o è stata precaricata da un OEM.
  • L'app è disponibile per questo utente e questo dispositivo, in base alle opzioni di targeting definite dallo sviluppatore.
  • L'app installata è obsoleta rispetto alla versione disponibile su Google Play.

Se queste condizioni sono soddisfatte, Google Play può aggiornare l'app. Le sottosezioni riportate di seguito forniscono dettagli su alcune delle condizioni elencate.

Tieni presente che in altre occasioni Google Play scarica contenuti delle app o esegue la manutenzione dei programmi binari delle app per conto degli sviluppatori senza modificare il codice versione di Android, ad esempio durante il completamento di download parziali o il download di divisioni on demand.

Pubblicato su Google Play

Google Play utilizza l'ID applicazione per identificare in modo univoco le applicazioni pubblicate su Google Play. Questa condizione è soddisfatta se l'ID applicazione dell'app installata corrisponde all'ID di un'app pubblicata su Google Play.

Parte della libreria dell'utente

Questa condizione è soddisfatta se una delle seguenti condizioni è vera:

  • Qualsiasi account Google attivo sul dispositivo ha precedentemente acquisito l'app toccando il pulsante Installa o Acquista su Google Play.
  • L'OEM ha precaricato l'app come parte dell'immagine di sistema.

Gli utenti hanno anche la possibilità di rimuovere manualmente le app dalle proprie librerie.

Obsoleto

Google Play stabilisce se un'app installata su un dispositivo è obsoleta controllando il codice di versione: se la versione disponibile per il download su Google Play ha un codice di versione superiore a quello della versione installata, Google Play considera l'app installata non aggiornata.

App su più store

Esistono diversi modi per controllare gli aggiornamenti tra store quando pubblichi un'app su più store. Nelle sezioni seguenti sono descritte queste opzioni e i relativi vantaggi e svantaggi potenziali.

Impedisci gli aggiornamenti tra negozi

Potrebbe essere opportuno impedire che ogni store esegua aggiornamenti per la tua app in più store. Puoi scegliere di farlo se i contenuti dell'app sono diversi in ogni store. A questo scopo, puoi pubblicare l'app con due diversi ID applicazione oppure pubblicare l'app con lo stesso ID applicazione e due diverse chiavi di firma.

Potresti voler ridurre al minimo il riutilizzo della chiave di firma per ridurre il rischio di compromissione della chiave, quindi utilizza una chiave di firma dell'app diversa per ogni store. In questo modo si eviteranno aggiornamenti tra negozi.

Indipendentemente dall'approccio scelto, Android considera incompatibili le app senza un ID applicazione e una chiave di firma corrispondenti. Un utente che desidera passare da uno store a un altro dovrà eliminare l'app installata (operazione che comporterà l'eliminazione di tutti i dati associati all'app) e reinstallarla dall'altro store.

Consenti aggiornamenti tra negozi

Potrebbe essere opportuno consentire a ogni store di eseguire aggiornamenti cross-store per la tua app. Puoi scegliere di farlo se distribuisci la tua app con gli stessi contenuti in tutti gli store e vuoi dare la priorità agli aggiornamenti degli utenti. Se utilizzi lo stesso ID applicazione e le stesse chiavi di firma in tutti gli store in cui pubblichi l'app, ogni store può aggiornare le installazioni della tua app a prescindere da dove l'utente ha inizialmente scaricato l'app.

Tuttavia, questo può portare a comportamenti imprevedibili per i tuoi utenti a seconda di come ogni store sceglie di implementare gli aggiornamenti delle app in più store. Ad esempio, un utente potrebbe disattivare gli aggiornamenti da un negozio, non rendersi conto che un altro negozio potrebbe continuare a fornire aggiornamenti.

Se in precedenza hai consentito gli aggiornamenti tra store, ma vuoi iniziare a preferire una determinata origine aggiornamento quando è presente sul dispositivo, puoi rilasciare l'app con un codice versione superiore nello store che preferisci e continuare a rilasciare con codici di versione inferiori su altri store. Una volta installato l'aggiornamento del codice della versione superiore dall'origine preferita, gli altri store non potranno eseguire l'aggiornamento incrociato sul dispositivo.