Informazioni su Android App Bundle
Che cos'è Android App Bundle (AAB)?
Lanciato nel 2018, Android App Bundle (AAB) è un formato di pubblicazione per Android supportato da Google Play e altri store e da strumenti di creazione come Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity e Unreal.
Qual è la differenza tra AAB e APK?
Gli app bundle servono solo per la 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 può essere supportato da qualsiasi store. I bundle sono supportati da Google Play e da alcuni altri store.
La creazione di AAB mi impedisce di pubblicare in altri store?
No, non ti è impedito di pubblicare in altri store. Quando crei la tua app, puoi creare contemporaneamente AAB e APK 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 è uno sforzo equivalente a quello di un APK, poiché comporta semplicemente la scelta di AAB anziché dell'APK al momento della creazione. Per alcune app, potrebbero essere necessarie alcune modifiche per ottenere tutti i vantaggi degli AAB.
Ci sono sviluppatori che utilizzano già gli AAB?
Sì. Oltre un milione di app e giochi utilizza gli app bundle per pubblicare le release di produzione su Google Play, inclusa la maggior parte delle app più diffuse, che rappresentano miliardi di installazioni attive. Se utilizzi Google Play per installare app, molte app installate 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é AAB è solo un formato di pubblicazione, non cambia il funzionamento della piattaforma Android.
Se uno sviluppatore utilizza gli AAB per pubblicare APK ottimizzati, significa che gli utenti che condividono gli APK potrebbero riscontrare problemi?
Ci sono sempre stati rari casi su Android in cui gli APK non possono essere trasferiti direttamente da un dispositivo a un altro, indipendentemente dal fatto che l'app sia pubblicata tramite APK o AAB. Nello specifico, quando gli APK sono stati ottimizzati per un dispositivo (ad esempio per una specifica architettura di chip), il trasferimento diretto degli APK direttamente su un altro dispositivo potrebbe causare problemi se il dispositivo di destinazione non corrisponde alle proprietà del dispositivo originale. In questi casi, è 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 utilizzi o meno gli AAB. Puoi pubblicare gli AAB su Google Play e in altri store che supportano gli AAB contemporaneamente alla pubblicazione di 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?
No, le app private pubblicate nella versione gestita di Google Play possono essere pubblicate con APK o AAB. Quando crei una nuova app privata, puoi scegliere Cambia la chiave di firma dell'app e disattivare la firma dell'app di Google Play se vuoi pubblicare un APK privato autofirmato.
Informazioni sulla firma dell'app di Google Play
Che cos'è la firma dell'app di Google Play?
Ogni APK su Android deve essere firmato in modo crittografico con una chiave di firma dell'app per poter essere installato. La piattaforma Android utilizza la chiave per garantire che tutti gli aggiornamenti dell'app corrispondano all'app installata su un dispositivo in modo che, dopo un'installazione iniziale, ogni aggiornamento dell'app provenga dallo stesso titolare della chiave. In questo modo ridurrai il rischio di aggiornamenti dannosi delle 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 Play genera dagli AAB caricati. La firma dell'app di Google Play è obbligatoria per le nuove app in modo che possano usare gli AAB.
Perché Google ha lanciato la firma dell'app di Google Play?
Per anni, le chiavi di firma dell'app sono state una sfida per gli sviluppatori di Google Play. Perdere la chiave significherebbe non essere più in grado di fornire agli utenti gli aggiornamenti dell'app, mentre la compromissione di una chiave potrebbe mettere gli utenti a rischio di aggiornamenti dannosi. È frequente che nella distribuzione del software i canali di distribuzione archivino e gestiscano le chiavi per il software che distribuiscono, poiché mitiga questi rischi. La funzionalità di firma dell'app di Google Play è stata lanciata nel 2017 per eliminare il rischio di perdere le chiavi di distribuzione di Google Play, per proteggere gli utenti di Google Play in seguito a una compromissione della chiave e per offrire agli sviluppatori il vantaggio del costante investimento nella sicurezza di Google.
In che modo Google garantisce la sicurezza della firma dell'app di Google Play?
Google protegge le chiavi degli sviluppatori nella stessa infrastruttura sicura leader del settore utilizzata per proteggere le chiavi di Google. Le chiavi vengono archiviate criptate su server di gestione delle chiavi dedicati e bloccati con ACL rigorosi e audit trail che evidenziano le manomissioni che coprono tutte le operazioni. Le operazioni e le best practice di sicurezza cloud di Google sono dettagliate online.
Posso scegliere la chiave di firma dell'app che Play utilizza per la mia app?
Sì, quando crei una nuova app puoi decidere che sia Google a generare e archiviare una chiave di firma dell'app per tuo conto oppure puoi scegliere una chiave di firma dell'app e caricarne una copia.
Voglio usare 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 in più store dopo aver considerato come funzionano gli aggiornamenti delle app, puoi comunque farlo. Ricorda che in questo modo ogni store potrà eseguire aggiornamenti per la tua app in più store. Hai due opzioni:
- Puoi generare una chiave in locale e caricarne una copia su Google Play. In questo modo, puoi usare 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, poi scaricare da Play Console gli APK di distribuzione firmati con la chiave generata da Google e utilizzare questi APK per la distribuzione su altri store o siti web.
Posso usare la firma dell'app di Google Play per un'app creata prima di agosto 2021 senza fornire una copia della 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 usare la firma dell'app di Google Play con una nuova chiave di firma. Tuttavia, per poter 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à i tuoi AAB per generare gli APK firmati con la chiave di cui è stato eseguito l'upgrade per le nuove installazioni e i relativi aggiornamenti; allo stesso tempo, Play utilizzerà gli APK precedenti per gli aggiornamenti dell'app per gli utenti che hanno già installato la tua app. Nel tempo, le installazioni legacy verranno migrate alla chiave di cui è stato eseguito l'upgrade (ad es. quando gli utenti passano a un nuovo dispositivo mobile).
C'è un modo per usare 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, poiché è più sicuro utilizzare una chiave univoca per ogni app. Tuttavia, se devi utilizzare la stessa chiave di firma dell'app per più app, è possibile. In entrambi i casi, 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 usare l'opzione di "upgrade della chiave" imminente 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 cambiare la chiave di firma dell'app utilizzata dalla funzionalità di firma dell'app di Google Play?
Sì, le app possono modificare la propria chiave richiedendo un upgrade della chiave in Play Console.
Come faccio a verificare che Google Play non abbia apportato modifiche impreviste al mio codice?
Puoi scaricare e controllare in qualsiasi momento gli elementi da Google Play e da Explorer per app bundle in Play Console. Inoltre, a breve l'API Play Developer offrirà la possibilità di verificare gli APK prima che vengano impegnati 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 gestire uno store come Google Play per tenere conto del codice fornito.
Come funziona la trasparenza del codice per gli app bundle?
La trasparenza del codice è una funzionalità facoltativa che consente di trattenere un app store che distribuisce la tua app per tenere conto del codice fornito. Per utilizzare la trasparenza del codice, al momento della creazione generi un file di trasparenza del codice nella tua app che rappresenti il tuo codice (in particolare, si tratta di un file che contiene hash del codice dell'app). Firma con la tua chiave di trasparenza del codice privata, che solo tu possiedi. Non è mai necessario fornire a Google la chiave di trasparenza del codice. Quindi, su un dispositivo, puoi controllare un APK installato e verificare che il file di trasparenza del codice che hai firmato corrisponda al codice dell'APK. In questo modo puoi assicurarti che, anche se l'APK stesso è stato firmato di nuovo durante la distribuzione, il codice verificato dalla trasparenza del codice non è stato modificato. La mancata corrispondenza indica la prova 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.
Pubblicazione di app e giochi di grandi dimensioni su Google Play
Cosa sono i limiti di dimensioni delle app di Google Play quando si utilizzano gli AAB?
Le dimensioni massime di download compresse per un modulo di base generato da un AAB sono 200 MB. In altre parole, Google Play genera prima il modulo di base, poi eventuali moduli di funzionalità o pacchetti di asset aggiuntivi del tuo AAB. Successivamente, Google Play verifica che la dimensione massima cumulativa totale dei download compressi ricevuti da ogni singolo dispositivo 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 tramite 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 AAB possono usare 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 usare reti CDN (Content Delivery Network) 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 pubblicare risorse aggiuntive per gli utenti. Tuttavia, poiché gli oggetti OBB non sono firmati e sono archiviati nell'unità di archiviazione esterna dell'app, non sono molto sicuri. Con Play Asset Delivery (PAD), i giochi con dimensioni superiori a 200 MB possono sostituire gli OBB pubblicando l'intero gioco come singolo app bundle sul Play Store. Oltre a offrire un processo di pubblicazione più fluido e modalità di distribuzione flessibili, PAD significa che gli aggiornamenti richiedono meno spazio di archiviazione sul dispositivo. Di conseguenza, può generare percentuali di installazione più alte. Infine, poiché ora l'ASTC è supportato su circa l'80% dei dispositivi, la funzionalità di targeting del formato di compressione delle texture di PAD ti consente di pubblicare il linguaggio ASTC sui dispositivi che lo supportano. Puoi scegliere come target la più vasta gamma di dispositivi e utilizzare in modo efficiente lo spazio di archiviazione disponibile, hardware e dei dispositivi.
Funzionalità di pubblicazione su Google Play sbloccate dagli AAB
Quali sono alcuni esempi di nuove funzionalità che Google Play offre agli sviluppatori che utilizzano 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, già ampiamente utilizzati e apprezzati dagli sviluppatori; due esempi sono 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, denominati "moduli delle funzionalità". Questi moduli possono quindi essere pubblicati dinamicamente per utenti e dispositivi in momenti diversi (diversamente da quanto accadeva in passato, quando al momento dell'installazione era necessario caricare tutti i contenuti come un unico file). Play Feature Delivery offre la possibilità di personalizzare i moduli di funzionalità da distribuire a quale dispositivo e quando, con le modalità ora di installazione, condizionale e on demand. In questo modo puoi ridurre le dimensioni dell'app, generando più installazioni e personalizzando l'esperienza dell'app. Ad esempio, potresti offrire una funzionalità utilizzata raramente come l'assistenza clienti on demand agli utenti che ne hanno bisogno anziché al momento dell'installazione, riducendo le dimensioni dell'installazione iniziale per tutti gli utenti. In alternativa, puoi offrire l'esperienza completa dell'app su dispositivi di fascia alta, offrendo al contempo un'esperienza di app più ridotta con funzionalità on demand facoltative per i dispositivi di livello base con limiti di spazio di archiviazione per dati e dispositivi.
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 fornendo in modo dinamico asset di grandi dimensioni nel momento ottimale. I giochi che utilizzano Play Asset Delivery possono anche utilizzare il targeting per formato di compressione delle texture, in modo che gli utenti ricevano solo gli asset adatti al loro dispositivo, senza sprechi di spazio o larghezza di banda.
Queste funzionalità di pubblicazione di Google Play sono disponibili in altri store?
No, Play Feature Delivery e Play Asset Delivery prevedono app e giochi che si interfacciano direttamente con Google Play Store. Questi servizi facoltativi sono esempi di come Google Play si distingue come uno store e apportano valore e utilità aggiuntivi agli sviluppatori e agli utenti di Google Play. Altri store che utilizzano app bundle e APK offrono agli sviluppatori i propri servizi dello store.