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 da altri store e da strumenti di compilazione come Android Studio, Bazel, Buck, Cocos Creator, Gradle, Unity e Unreal.
Qual è la differenza tra AAB e APK?
I set di app sono destinati solo alla pubblicazione e non possono essere installati sui dispositivi Android. Il pacchetto Android (APK) è il formato installabile ed eseguibile di Android per le app. Gli app bundle devono essere elaborati da un distributore in APK per poter essere installati sui dispositivi.
AAB è un formato proprietario che può essere utilizzato solo su Google Play?
No, l'AAB non è proprietario. Il bundle di app è open source, quindi qualsiasi store di app può supportarlo. I set sono supportati da Google Play e da alcuni altri store di app.
La creazione di AAB mi impedisce di pubblicare su altri store?
No, non ti è impedito di pubblicare su altri store. Quando sviluppi 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é consiste semplicemente nel scegliere AAB anziché APK in fase di compilazione. Per alcune app potrebbero essere necessarie alcune modifiche per usufruire di tutti i vantaggi degli annunci adattabili della rete di ricerca.
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, che rappresentano miliardi di installazioni attive. Se utilizzi Google Play per installare le app, molte di quelle sul tuo dispositivo sono state pubblicate come app bundle.
L'AAB impedisce agli utenti di "sideloadare" le app?
No, i pacchetti 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 è possibile che gli utenti che condividono questi APK riscontrino problemi?
Su Android sono sempre stati presenti casi rari 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. Nello specifico, quando gli APK sono stati ottimizzati per un dispositivo (ad esempio per un'architettura del chip specifica), il trasferimento diretto di questi APK su un altro dispositivo potrebbe comportare 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 dall'utilizzo o meno di AAB. Puoi pubblicare AAB su Google Play e su 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 chiave di firma dell'app e disattivare la funzionalità di firma dell'app di Google Play se vuoi pubblicare un APK privato autofirmato.
Informazioni sulla firma dell'app di Google Play
Che cos'è la funzionalità di firma dell'app di Google Play?
Per poter essere installato, ogni APK su Android deve essere firmato in modo criptato con una chiave di firma dell'app. La piattaforma Android utilizza la chiave per garantire che 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 proprietario della chiave. In questo modo ridurrai il rischio di aggiornamenti di app dannosi. Lanciato nel 2017, Play App Signing è il servizio di gestione delle chiavi di Google Play che protegge e gestisce le chiavi di firma dell'app degli sviluppatori di Google Play per le loro app distribuite su Google Play. Inoltre, la funzionalità di firma dell'app di Google Play esegue l'operazione di firma sugli APK che Google Play genera dagli AAB caricati. La funzionalità di firma dell'app di Google Play è obbligatoria per le nuove app affinché possano utilizzare gli AAB.
Perché Google ha lanciato la funzionalità di firma dell'app di Google Play?
Per anni, le chiavi di firma dell'app hanno rappresentato una sfida per gli sviluppatori di Google Play. Se la chiave viene persa, non sarà più possibile fornire aggiornamenti dell'app agli utenti e se viene compromessa, gli utenti rischiano di ricevere aggiornamenti dannosi. È comune nella distribuzione del software che i canali di distribuzione memorizzino e gestiscano le chiavi del software che distribuiscono perché riducono questi rischi. La funzionalità Firma dell'app di Google Play è stata lanciata nel 2017 per eliminare il rischio di perdere le chiavi di distribuzione di Google Play, per consentire di proteggere gli utenti di Google Play in seguito a una compromissione delle chiavi e per offrire agli sviluppatori i vantaggi dell'investimento continuo di Google in termini di sicurezza.
In che modo Google garantisce la sicurezza della funzionalità Firma dell'app di Google Play?
Google protegge le chiavi degli sviluppatori nella stessa infrastruttura sicura 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 procedure di controllo antimanomissione che coprono tutte le operazioni. Le operazioni e le best practice per la sicurezza del cloud di Google sono descritte in dettaglio online.
Posso scegliere la chiave di firma dell'app utilizzata da Google Play per la mia app?
Sì, quando crei una nuova app puoi scegliere di far generare e memorizzare da 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 esaminato il funzionamento degli aggiornamenti delle app, è ancora possibile farlo. Ricorda 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 l'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 utilizzarli 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 delle chiavi" per le app create prima di agosto 2021. In questo modo, l'app può iniziare a utilizzare la funzionalità 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 legacy firmato con la vecchia chiave di firma dell'app. Google Play utilizzerà i tuoi AAB per generare APK firmati con la chiave di cui è stato eseguito l'upgrade per le nuove installazioni e i relativi aggiornamenti. Allo stesso tempo, Google Play utilizzerà i tuoi APK precedenti per gli aggiornamenti dell'app per gli utenti che hanno già installato la tua app. Nel tempo, le installazioni precedenti verranno migrate alla chiave di cui è stato eseguito l'upgrade (ad esempio 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. In alternativa, puoi caricare una copia della chiave di firma dell'app esistente quando configuri la firma dell'app di Google Play. In alternativa, se non vuoi condividere la chiave di firma dell'app esistente, puoi utilizzare l'opzione "upgrade della chiave" imminente per la tua app precedente ad agosto 2021 per iniziare a utilizzare la funzionalità di firma dell'app di Google Play. In questo modo, sia l'app creata prima di agosto 2021 sia quella creata dopo agosto 2021 possono utilizzare la stessa nuova chiave.
Posso modificare la chiave di firma dell'app utilizzata da Play App Signing?
Sì, le app possono cambiare la 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 ispezionare gli elementi da Google Play e da Release e bundle più recenti in Play Console in qualsiasi momento. Inoltre, a breve l'API Google Play Developer offrirà la possibilità di verificare gli APK prima di committarli 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 richiedere a un app store come Google Play di tenere conto del codice che fornisce.
Come funziona la trasparenza del codice per gli app bundle?
La trasparenza del codice è una funzionalità facoltativa che consente a un store che distribuisce la tua app di tenere conto del codice che fornisce. 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, si tratta di un file contenente gli hash del codice dell'app). Lo firmi con la tua chiave di trasparenza del codice privato che solo tu possiedi. Non dovrai mai fornire la chiave di trasparenza del codice a Google. Quindi, su un dispositivo, puoi ispezionare un APK installato e verificare che il file di trasparenza del codice che hai firmato corrisponda ancora al codice dell'APK. In questo modo, avrai la certezza che, anche se l'APK stesso è stato nuovamente firmato durante la distribuzione, il codice verificato dalla trasparenza del codice non è stato modificato. Se non c'è corrispondenza, significa che il codice è stato modificato durante la distribuzione. La trasparenza del codice non sostituisce le firme APK e non fa parte della piattaforma Android.
Pubblicazione di app e giochi di grandi dimensioni su Google Play
Quali sono i limiti di dimensioni 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. In altre parole, Google Play genererà prima il modulo di base, quindi eventuali moduli di funzionalità o pacchetti di asset aggiuntivi dall'AAB. Successivamente, Google Play verifica che le dimensioni totali cumulative massime dei download compressi ricevuti da ciascun singolo dispositivo non superino 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 precedente specifica per 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 annunci adattabili della rete di ricerca di dimensioni superiori a 200 MB.
Come faccio a pubblicare su Google Play un'app o un gioco di dimensioni superiori a 200 MB?
Le app e i giochi di grandi dimensioni che utilizzano i bundle APK 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 (OBB) separati per fornire risorse aggiuntive agli utenti. Tuttavia, poiché i file OBB non sono stati firmati e sono memorizzati nello spazio di archiviazione esterno dell'app, non sono molto sicuri. Con Play Asset Delivery (PAD), i giochi di 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ù semplice e modalità di caricamento flessibili, PAD consente di ridurre lo spazio di archiviazione del dispositivo richiesto dagli aggiornamenti. Di conseguenza, può contribuire ad aumentare le percentuali di installazione. Infine, ora che ASTC è supportato su circa l'80% di dispositivi, la funzionalità di targeting del formato di compressione delle texture di PAD consente di pubblicare ASTC sui dispositivi che lo supportano. Puoi scegliere come target la più ampia gamma di dispositivi, utilizzando al contempo in modo efficiente l'hardware e lo spazio di archiviazione dei dispositivi disponibili.
Funzionalità di caricamento di Google Play sbloccate dagli AAB
Quali sono alcuni esempi di nuove funzionalità che Play offre agli sviluppatori che utilizzano gli AAB?
Gli store come Google Play trasformano gli AAB in APK installabili. Essere responsabile degli APK consente di offrire nuove funzionalità e servizi che apportano vantaggi a sviluppatori e utenti. Play offre già questi servizi, che sono 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, chiamati "moduli di funzionalità". Questi moduli possono quindi essere pubblicati dinamicamente per utenti e dispositivi in momenti diversi (a differenza di quanto accadeva in passato, quando tutto doveva essere pubblicato come un unico file al momento dell'installazione). Play Feature Delivery ti consente di personalizzare i moduli delle funzionalità da pubblicare su un determinato 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, aumentare le installazioni e personalizzare la tua esperienza con l'app. Ad esempio, potresti fornire 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 la tua esperienza completa con l'app su dispositivi di fascia alta e un'esperienza più ridotta con funzionalità on demand facoltative su dispositivi entry-level con limitazioni di dati e spazio di archiviazione del dispositivo.
Che cos'è Play Asset Delivery?
Play Asset Delivery consente agli sviluppatori di giochi di migliorare l'esperienza utente e di ridurre i tempi di attesa pubblicando dinamicamente asset di grandi dimensioni al 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 sprecare spazio o larghezza di banda.
Queste funzionalità di pubblicazione su Google Play sono disponibili su altri store?
No, Play Feature Delivery e Play Asset Delivery richiedono che le app e i giochi interagiscano direttamente con il Google Play Store. Questi servizi facoltativi sono esempi di come Play si differenzi come app store e offra valore e utilità aggiuntivi agli sviluppatori e agli utenti di Play. Altri store che utilizzano app bundle e APK offrono ai sviluppatori i propri servizi.