Domande frequenti su Android App Bundle

Informazioni su Android App Bundle

Che cos'è Android App Bundle (AAB)?

Android App Bundle (AAB), lanciato nel 2018, è un formato di pubblicazione per Android supportato da Google Play e da altri store, nonché da strumenti di build come Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity e Unreal.

Qual è la differenza tra AAB e APK?

Gli app bundle sono destinati esclusivamente alla pubblicazione e non possono essere installati sui dispositivi Android. Il pacchetto Android (APK) è il formato eseguibile e installabile di Android per le app. Gli app bundle devono essere elaborati da un distributore in APK per poter essere installati sui dispositivi.

L'AAB è un formato proprietario che può essere utilizzato solo su Google Play?

No, l'AAB non è proprietario. L'app bundle è open source, quindi qualsiasi app store può supportarlo. I bundle sono supportati da Google Play e da alcuni altri store.

La creazione di AAB mi impedisce di pubblicare su altri store?

No, non ti viene impedito di pubblicare su altri store. Quando crei la tua app, puoi creare AAB e APK contemporaneamente, a seconda del formato di pubblicazione richiesto per ogni store.

Quanto lavoro è necessario per utilizzare un AAB?

Per la maggior parte delle app, la creazione di un AAB richiede lo stesso impegno della creazione di un APK, poiché comporta semplicemente la scelta di AAB anziché APK in fase di compilazione. Per alcune app, potrebbero essere necessarie alcune modifiche per sfruttare appieno i vantaggi degli AAB.

Ci sono già sviluppatori che utilizzano gli AAB?

Sì. Oltre 1 milione di app e giochi utilizzano gli app bundle per pubblicare le release di produzione su Google Play, inclusa la maggior parte delle app più diffuse, per un totale di miliardi di installazioni attive. Se utilizzi Google Play per installare le app, molte delle app sul tuo dispositivo sono state pubblicate come app bundle.

L'AAB impedisce agli utenti di eseguire il "sideload" delle app?

No, gli AAB non impediscono agli utenti di installare APK da qualsiasi origine. Poiché l'AAB è solo un formato di pubblicazione, non modifica il funzionamento della piattaforma Android.

Se uno sviluppatore utilizza gli AAB per pubblicare APK ottimizzati, significa che gli utenti che condividono questi APK potrebbero riscontrare problemi?

Su Android si sono sempre verificati rari casi in cui gli APK non possono essere trasferiti direttamente da un dispositivo all'altro, indipendentemente dal fatto che l'app sia pubblicata tramite APK o AAB. In particolare, quando gli APK sono stati ottimizzati per un dispositivo (ad esempio, per un'architettura di chip specifica), il trasferimento diretto di questi APK a un altro dispositivo potrebbe causare problemi se il dispositivo di destinazione non corrisponde alle proprietà del dispositivo originale. In queste situazioni, è necessario installare un APK o un insieme di APK appropriati per il dispositivo di destinazione.

Posso pubblicare su più store?

Sì, puoi pubblicare su più store, indipendentemente dal fatto che tu utilizzi o meno gli AAB. Puoi pubblicare gli AAB su Google Play e su altri store che li supportano contemporaneamente alla pubblicazione degli APK su altri store o siti web che non supportano gli AAB.

Il requisito AAB si applica alle app private pubblicate nella versione gestita di Google Play?

Sì, le app private pubblicate nella versione gestita di Google Play da Play Console devono pubblicare gli AAB.

La pubblicazione degli APK è ancora supportata tramite l'iframe della versione gestita di Play.

Informazioni sulla firma dell'app di Google Play

Che cos'è la firma dell'app di Google Play?

Per poter essere installato, ogni APK su Android deve essere firmato crittograficamente con una chiave di firma dell'app. La piattaforma Android utilizza la chiave per assicurarsi che tutti gli aggiornamenti dell'app corrispondano all'app installata su un dispositivo, in modo che, dopo l'installazione iniziale, ogni aggiornamento dell'app provenga dallo stesso titolare della chiave. In questo modo si riduce il rischio di aggiornamenti dannosi dell'app. Lanciata nel 2017, la firma dell'app di Google Play è il servizio di gestione delle chiavi di Google Play che protegge e gestisce le chiavi di firma delle app degli sviluppatori di Google Play per le loro app distribuite su Google Play. Inoltre, la firma dell'app di Google Play esegue l'operazione di firma sugli APK che Google Play genera dagli AAB caricati. La firma dell'app di Google Play è obbligatoria per le nuove app in modo che possano utilizzare gli AAB.

Perché Google ha lanciato la firma dell'app di Google Play?

Per anni, le chiavi di firma delle app sono state una sfida per gli sviluppatori di Google Play. La perdita della chiave impedisce di fornire aggiornamenti dell'app agli utenti e la compromissione di una chiave espone gli utenti al rischio di aggiornamenti dannosi. Nella distribuzione di software, è pratica comune che i canali di distribuzione memorizzino e gestiscano le chiavi del software che distribuiscono, perché ciò mitiga questi rischi. La firma dell'app di Google Play è stata lanciata nel 2017 per eliminare il rischio di perdita delle chiavi di distribuzione di Google Play, per consentire la protezione degli utenti di Google Play in caso di compromissione della chiave e per offrire agli sviluppatori il vantaggio dell'investimento continuo di Google nella sicurezza.

In che modo Google garantisce la sicurezza della firma dell'app di Google Play?

Google protegge le chiavi degli sviluppatori nella stessa infrastruttura sicura e leader del settore utilizzata per proteggere le proprie chiavi. Le chiavi vengono archiviate criptate su server di gestione delle chiavi dedicati e bloccati con ACL rigorosi e audit trail antimanomissione che coprono tutte le operazioni. Le operazioni di sicurezza cloud e le best practice di Google sono descritte in dettaglio online.

Posso scegliere la chiave di firma dell'app che Google Play utilizza per la mia app?

Sì, quando crei una nuova app puoi scegliere di far generare e archiviare a Google una chiave di firma dell'app per tuo conto oppure puoi scegliere la tua chiave di firma dell'app e caricarne una copia.

Voglio utilizzare la stessa chiave di firma dell'app per Google Play e altri store. È ancora possibile?

Se hai deciso di utilizzare la stessa chiave di firma su più store dopo aver considerato il funzionamento degli aggiornamenti delle app, è ancora possibile farlo. Tieni presente che in questo modo ogni store potrà eseguire aggiornamenti delle app tra store per la tua app. Hai due opzioni:

  • Puoi generare una chiave localmente e caricarne una copia su Google Play. In questo modo, puoi utilizzare la stessa chiave utilizzata da Google Play quando crei la tua app per altri store.
  • Puoi utilizzare una chiave generata da Google per la firma dell'app di Google Play, quindi scaricare gli APK di distribuzione da Play Console firmati con la chiave generata da Google e utilizzare questi APK per la distribuzione su altri store o siti web.

Posso utilizzare la firma dell'app di Google Play per un'app creata prima di agosto 2021 senza fornire una copia della mia chiave di firma dell'app?

Sì, la firma dell'app di Google Play supporta un'opzione di "upgrade della chiave" per le app create prima di agosto 2021. In questo modo, l'app può iniziare a utilizzare la firma dell'app di Google Play con una nuova chiave di firma dell'app. Tuttavia, per utilizzare questa opzione, dopo aver eseguito l'upgrade dovrai caricare due elementi in ogni release: un app bundle e un APK precedente firmato con la vecchia chiave di firma dell'app. Google Play utilizzerà gli AAB per generare APK firmati con la chiave aggiornata per le nuove installazioni e i relativi aggiornamenti; allo stesso tempo, Google Play utilizzerà gli APK precedenti per gli aggiornamenti delle app per gli utenti che hanno già installato la tua app. Nel tempo, le installazioni precedenti verranno migrate alla chiave aggiornata (ad es. quando gli utenti passano a un nuovo dispositivo mobile).

Esiste un modo per utilizzare la stessa chiave di firma dell'app per le app create prima di agosto 2021 e per quelle create dopo agosto 2021?

In genere non è consigliabile utilizzare la stessa chiave di firma dell'app per più app, è più sicuro utilizzare una chiave univoca per ogni app. Tuttavia, se devi utilizzare la stessa chiave di firma dell'app per più app, è possibile farlo. Puoi caricare una copia della chiave di firma dell'app esistente durante la configurazione della firma dell'app di Google Play. In alternativa, se non vuoi condividere la chiave di firma dell'app esistente, puoi utilizzare l'opzione di "upgrade della chiave" per la tua app precedente ad agosto 2021 per iniziare a utilizzare la firma dell'app di Google Play. In questo modo, sia l'app precedente ad agosto 2021 sia quella successiva ad agosto 2021 possono utilizzare la stessa nuova chiave.

Posso modificare la chiave di firma dell'app utilizzata dalla firma dell'app di Google Play?

Sì, le app possono modificare la chiave richiedendo un upgrade della chiave in Play Console.

Come posso verificare che Google Play non abbia apportato modifiche impreviste al mio codice?

In qualsiasi momento, puoi scaricare ed esaminare gli artefatti da Google Play e da Release e bundle più recenti in Play Console. Inoltre, l'API Google Play Developer offrirà a breve la possibilità di verificare gli APK prima di eseguirne il commit in un canale di rilascio. Puoi anche utilizzare una funzionalità facoltativa chiamata trasparenza del codice per gli app bundle. Con la trasparenza del codice, tu e i tuoi utenti finali potete ritenere uno store come Google Play responsabile del codice che pubblica.

Come funziona la trasparenza del codice per gli app bundle?

La trasparenza del codice è una funzionalità facoltativa che consente di ritenere uno store che distribuisce la tua app responsabile del codice che pubblica. Per utilizzare la trasparenza del codice, in fase di compilazione generi un file di trasparenza del codice nella tua app che rappresenta il tuo codice (in particolare, è un file che contiene gli hash del codice della tua app). Lo firmi con la tua chiave di trasparenza del codice privata che solo tu possiedi. Non devi mai fornire la chiave di trasparenza del codice a Google. Poi, su un dispositivo, puoi esaminare un APK installato e verificare che il file di trasparenza del codice che hai firmato corrisponda ancora al codice dell'APK. In questo modo, hai la certezza che, anche se l'APK stesso è stato firmato nuovamente durante la distribuzione, il codice verificato dalla trasparenza del codice non è stato modificato. Se c'è una mancata corrispondenza, significa che il codice è stato modificato durante la distribuzione. La trasparenza del codice non sostituisce le firme degli APK e non fa parte della piattaforma Android.

Pubblicare app e giochi di grandi dimensioni su Google Play

Quali sono i limiti di dimensione delle app di Google Play quando si utilizzano gli AAB?

La dimensione massima di download compressa per un modulo di base generato da un AAB è di 200 MB. Ciò significa che Google Play genererà prima il modulo di base, poi tutti i moduli delle funzionalità o i pacchetti di asset aggiuntivi dal tuo AAB. Successivamente, Google Play verifica che la dimensione massima di download compressa totale cumulativa che ogni singolo dispositivo riceve non superi i 4 GB.

Google Play supporta i file di espansione (OBB) per gli AAB?

No, Google Play non supporta i file di espansione per gli AAB. I file di espansione (OBB) sono una soluzione legacy specifica di Google Play per la pubblicazione di app e giochi di grandi dimensioni utilizzando gli APK. Esistono alternative di Google e di terze parti per gli AAB di dimensioni superiori a 200 MB.

Come faccio a pubblicare un'app o un gioco di dimensioni superiori a 200 MB su Google Play?

Le app e i giochi di grandi dimensioni che utilizzano gli AAB possono utilizzare i servizi di pubblicazione di Google Play, come Play Asset Delivery o Play Feature Delivery, per superare il limite di dimensioni di 200 MB oppure possono utilizzare reti di distribuzione dei contenuti di terze parti.

Quali vantaggi offre Play Asset Delivery rispetto ai file di espansione (OBB)?

Su Google Play, gli APK richiedevano file di espansione separati (OBB) per fornire risorse aggiuntive agli utenti. Tuttavia, poiché gli OBB non erano firmati e venivano archiviati nella memoria esterna dell'app, non erano molto sicuri. Con Play Asset Delivery (PAD), i giochi di dimensioni superiori a 200 MB possono sostituire gli OBB pubblicando l'intero gioco come un singolo app bundle sul Play Store. Oltre a offrire un processo di pubblicazione più fluido e modalità di pubblicazione flessibili, PAD significa che gli aggiornamenti richiedono meno spazio di archiviazione sul dispositivo. Di conseguenza, può aumentare le percentuali di installazione. Infine, con ASTC ora supportato su circa l'80% dei dispositivi, la funzionalità di targeting del formato di compressione delle texture di PAD ti consente di erogare ASTC sui dispositivi che lo supportano. Puoi scegliere come target la più ampia gamma di dispositivi, utilizzando in modo efficiente l'hardware e lo spazio sul dispositivo disponibili.

Funzionalità di pubblicazione di Google Play sbloccate dagli AAB

Quali sono alcuni esempi di nuove funzionalità che Google Play offre agli sviluppatori che utilizzano gli AAB?

Gli store come Google Play elaborano gli AAB in APK installabili. La responsabilità degli APK consente di offrire nuove funzionalità e servizi che apportano vantaggi a sviluppatori e utenti. Google Play offre già servizi di questo tipo, ampiamente utilizzati e apprezzati dagli sviluppatori, ad esempio Play Feature Delivery e Play Asset Delivery.

Che cos'è Play Feature Delivery?

Una delle funzionalità degli app bundle è che consentono di separare un'app in più moduli, chiamati "moduli delle funzionalità". Questi moduli possono essere pubblicati dinamicamente su utenti e dispositivi in momenti diversi (a differenza del passato, quando tutto doveva essere pubblicato come un unico file al momento dell'installazione). Play Feature Delivery ti consente di personalizzare quali moduli delle funzionalità vengono pubblicati su quale dispositivo e quando, con le modalità di pubblicazione al momento dell'installazione, condizionale e on demand. In questo modo puoi ridurre le dimensioni dell'app, aumentando le installazioni e personalizzando l'esperienza dell'app. Ad esempio, potresti pubblicare una funzionalità utilizzata raramente, come l'assistenza clienti, on demand per gli utenti che ne hanno bisogno anziché al momento dell'installazione, riducendo le dimensioni dell'installazione iniziale per tutti gli utenti. In alternativa, potresti offrire l'esperienza completa dell'app sui dispositivi di fascia alta, mentre sui dispositivi di fascia bassa con vincoli di dati e spazio sul dispositivo potresti offrire un'esperienza dell'app più piccola con funzionalità facoltative on demand.

Che cos'è Play Asset Delivery?

Play Asset Delivery consente agli sviluppatori di giochi di migliorare l'esperienza utente e ridurre i tempi di attesa degli utenti pubblicando dinamicamente asset di grandi dimensioni al momento ottimale. I giochi che utilizzano Play Asset Delivery possono anche utilizzare il targeting del formato di compressione delle texture, in modo che gli utenti ricevano solo gli asset adatti al loro dispositivo, senza sprecare spazio o larghezza di banda.

Queste funzionalità di pubblicazione di Google Play sono disponibili su altri store?

No, Play Feature Delivery e Play Asset Delivery prevedono che app e giochi interagiscano direttamente con il Google Play Store. Questi servizi facoltativi sono esempi di come Google Play si differenzia come store e offre valore e utilità aggiuntivi agli sviluppatori e agli utenti di Google Play. Altri store che utilizzano app bundle e APK offrono i propri servizi di store agli sviluppatori.