Perché utilizzare la firma dell'app di Google Play? Oltre a proteggere le chiavi da perdita o compromissione permanente, la registrazione alla firma dell'app di Google Play sblocca miglioramenti per gli Android App Bundle (.aab). Se consenti a Google di firmare gli APK di distribuzione ottimizzati generati dagli app bundle, ottieni l'accesso a servizi preziosi come la protezione automatica e la traduzione automatica delle stringhe utilizzando i modelli Gemini. I giochi ottengono l'accesso a servizi automatici aggiuntivi come Play Games Sidekick, Gioca durante il download e prove senza costi per i titoli a pagamento.
Per configurare la firma dell'app di Google Play, devi essere il proprietario dell'account o disporre dell'autorizzazione Rilascio per il canale di produzione, esclusione di dispositivi e uso della funzionalità firma dell'app di Google Play e accettare i Termini di servizio.
Concetti principali
Quando utilizzi la firma dell'app di Google Play, hai a che fare con due chiavi distinte. Comprendere la differenza e i relativi formati tecnici è fondamentale per evitare problemi di autenticazione con le API di terze parti.
| Tipo di chiave | Chi ne è in possesso | Dettagli tecnici e scopo |
|
Chiave di caricamento |
Tu (conserva questo dato in modo sicuro) |
|
| Chiave di firma dell'app |
Google Play |
|
| Predisposta per la tecnologia quantistica | Google Play |
|
Nota: per consentire la massima sicurezza, la chiave di caricamento e la chiave di firma dell'app devono essere diverse.
In che modo Google firma la tua app: quando Google genera e firma gli APK con la chiave di firma dell'app, utilizza apksigner per aggiungere due timbri al file manifest dell'app (com.android.stamp.source e com.android.stamp.type). Questi timbri garantiscono che i tuoi APK siano tracciabili in modo sicuro fino al signer originale.
Configura la firma dell'app di Google Play
La procedura di configurazione varia a seconda che pubblichi una nuova app o fai la migrazione di una esistente.
Per le nuove app
- Crea una nuova app: la tua app verrà registrata automaticamente per la firma ibrida e predisposta per la tecnologia quantistica con chiavi generate da Google. Generiamo anche una chiave classica separata da utilizzare nei blocchi di firma riconosciuti sui dispositivi Android 16 e versioni precedenti.
- Crea una chiave di caricamento: genera un archivio chiavi per firmare l'app bundle della release. Puoi generarlo in Android Studio o utilizzare l'utilità Java Keytool dalla riga di comando.
- Carica l'app bundle: vai a Play Console e prepara una nuova release. Per impostazione predefinita, quando carichi l'app bundle, la tua app viene registrata automaticamente per la firma ibrida predisposta per la tecnologia quantistica con chiavi generate da Google.
- (Facoltativo) Modifica la chiave di firma dell'app: gli sviluppatori esperti che vogliono gestire la propria chiave possono modificare questa impostazione predefinita. Puoi farlo facendo clic su Modifica chiave di firma nella sezione di integrità dell'app della release oppure navigando su Protetto con Play > Protezione del Play Store > Gestisci la firma dell'app di Google Play. Puoi quindi scegliere di:
- Utilizzare la stessa chiave usata da un'altra app in questo account sviluppatore
- Fornire una copia della chiave di firma dell'app (seguendo le istruzioni)
Per le app esistenti
Se al momento gestisci le tue chiavi e carichi gli APK, puoi fare l'upgrade alla firma dell'app di Google Play per sfruttare i vantaggi degli app bundle e dei miglioramenti di Play.
- Vai a Protetto con Play > Protezione del Play Store > Vai alla firma dell'app di Google Play in Play Console.
- Accetta i Termini di servizio, se non l'hai ancora fatto.
- Trasferisci una copia della chiave originale: scarica lo strumento PEPK e segui le istruzioni passo passo unificate per criptare e caricare la chiave di firma dell'app esistente da qualsiasi repository.
Registrati con i provider di API
Se la tua app utilizza API (come Google Maps, OAuth o Facebook Login), questi servizi autenticano la tua app utilizzando l'impronta della chiave di firma dell'app.
Poiché Google firma l'APK finale, devi registrare l'impronta della chiave di firma dell'app detenuta da Google con i tuoi provider di API, non solo la tua chiave di caricamento locale.
- Vai a Protetto con Play > Distribuzione sul Play Store > Vai alla firma dell'app di Google Play.
- Scorri fino alla sezione Chiave di firma dell'app.
- Copia le impronte richieste (SHA-1 o SHA-256). Se la tua app utilizza la firma ibrida predisposta per la tecnologia quantistica, devi copiare le impronte di tre chiavi e registrarne ciascuna con i tuoi fornitori di API: le nuove chiavi classiche e PQC utilizzate sui dispositivi più recenti e la chiave classica utilizzata sui dispositivi meno recenti.
- Incolla queste impronte nella console del tuo provider di API (ad esempio, la console Google Cloud).
Suggerimento: aggiorna il file assetlinks.json con queste impronte se utilizzi Android App Links.
Gestisci le chiavi
Fai l'upgrade della chiave di firma dell'app
Se la chiave di firma dell'app è compromessa o hai bisogno di una chiave più efficace dal punto di vista della crittografia, puoi richiedere un upgrade annuale della chiave per tutte le installazioni su Android N (livello API 24) e versioni successive.
Come funziona l'applicazione forzata nelle varie versioni di Android:
- Android T (livello API 33) e versioni successive: la piattaforma Android impone rigorosamente l'utilizzo della chiave di cui è stato fatto l'upgrade.
- Android N (livello API 24) ad Android S (livello API 32): la piattaforma Android non impone l'utilizzo della chiave di cui è stato fatto l'upgrade e riconosce comunque la chiave di firma precedente. Tuttavia, Google Play Protect fornisce un'ulteriore convalida controllando che gli aggiornamenti dell'app siano firmati con la chiave di cui è stato fatto l'upgrade (a meno che non sia stato disattivato dall'utente).
Considerazione importante:
- Dati condivisi: poiché la piattaforma non impone la chiave di cui è stato fatto l'upgrade su Android S (livello API 32) e versioni precedenti, se utilizzi la stessa chiave in più app per condividere i dati, queste versioni precedenti di Android riconosceranno solo la chiave precedente per funzionalità come la condivisione delle autorizzazioni personalizzate.
Come fare l'upgrade:
- Vai a Protetto con Play > Distribuzione sul Play Store > Vai alla firma dell'app di Google Play.
- Nella sezione Chiave di firma dell'app, fai clic su Esegui l'upgrade della chiave.
- Scegli il percorso di upgrade:
- (Opzione consigliata) Consenti a Google Play di generare una nuova chiave di firma dell'app
- Usa la stessa chiave di firma dell'app di un'altra app in questo account sviluppatore
- Fornisci una copia della chiave di firma dell'app (seguendo le istruzioni)
- Fai clic su Salva e registra le nuove impronte della chiave con i provider di API.
Richiedi la reimpostazione della chiave di caricamento
Se perdi la chiave di caricamento o sospetti che sia stata compromessa, non perdi l'accesso alla tua app.
- Crea una nuova chiave di caricamento in Android Studio.
- Esporta il certificato in formato PEM:
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
(Per maggiori informazioni su Keytool e sui percorsi dell'archivio chiavi, consulta la guida alla firma dell'app di Android Studio). - Una volta generato il file PEM, invia la richiesta di reimpostazione in Play Console.
- Vai a Protetto con Play > Protezione del Play Store > Gestisci la firma dell'app di Google Play.
- Nella sezione Certificato della chiave di caricamento, fai clic su Richiedi la reimpostazione chiave di caricamento.
- Inserisci il motivo della reimpostazione.
- Carica il file
upload_certificate.peme fai clic su Richiedi.
Best practice e distribuzione alternativa
- Sicurezza: proteggi l'accesso a Play Console imponendo la verifica in due passaggi per tutti gli utenti.
- Miglioramenti di Play: la registrazione alla firma dell'app di Google Play consente di accedere ai miglioramenti di Play per i tuoi app bundle. Per ricevere gli aggiornamenti, prima apporta le modifiche necessarie durante la creazione di una nuova release e poi carica il nuovo app bundle.
- Distribuzione al di fuori di Google Play: se distribuisci tramite altri store e vuoi utilizzare la stessa chiave di firma ovunque, hai due opzioni. [1] Puoi chiedere a Google di generare la chiave di firma dell'app e scaricare un APK universale firmato da Play Console o dall'API Play Developer per distribuirlo altrove (in Play Console vai a Testa e rilascia > Release e bundle più recenti, seleziona il tuo app bundle e fai clic sulla scheda Download) oppure [2] puoi generare la chiave di firma dell'app che vuoi utilizzare per tutti gli store e trasferirne una copia a Google quando configuri la firma dell'app di Google Play. Scopri di più su come funzionano gli aggiornamenti delle app e sulle opzioni per attivare o disattivare gli aggiornamenti cross-store.
- Test: utilizza la condivisione interna delle app per testare esattamente ciò che Google Play fornirà agli utenti oppure scarica gli APK specifici per il dispositivo da Explorer per app bundle e installali localmente utilizzando adb install-multiple *
.apk. - Schema di firma dell'APK v4: la firma dell'app di Google Play utilizza automaticamente la firma v4 per le app idonee per supportare la distribuzione ottimizzata sui dispositivi Android 11 e versioni successive. Non è necessario alcun intervento da parte tua. Sono escluse tutte le app che utilizzano la firma ibrida predisposta per la tecnologia quantistica, che non è ancora compatibile con la firma v4. Per scoprire di più sui vantaggi tecnici, consulta la documentazione sullo schema di firma dell'APK v4.
- Progetti Google Cloud self-hosted: se hai requisiti di sicurezza molto specifici (ad esempio, l'utilizzo di chiavi OEM), puoi utilizzare l'API Play Developer per registrarti alla firma dell'app di Google Play utilizzando un progetto Google Cloud self-hosted. Nota: questa è una configurazione non standard che non è consigliata. L'utilizzo di un progetto self-hosted implica l'assunzione della piena responsabilità delle operazioni di firma dell'app e impedisce a Google Play di eseguire funzionalità essenziali come il disaster recovery.