Devo caricare una nuova applicazione, è solo il design che è leggermente diverso. Ieri ho generato il file keystore per firmare l'applicazione. Posso usare lo stesso?
Devo caricare una nuova applicazione, è solo il design che è leggermente diverso. Ieri ho generato il file keystore per firmare l'applicazione. Posso usare lo stesso?
Risposte:
Puoi usarlo keystore
per un numero qualsiasi di applicazioni.
Non è necessario generare un nuovo keystore.
Farò una controargomentazione alla risposta del consenso finora.
Sono d'accordo che per la maggior parte degli autori di app la maggior parte del tempo, la condivisione dello stesso keystore / certificato / password tra le app funzionerà correttamente. La cosa fondamentale è utilizzare " lo stesso certificato per tutta la durata prevista delle applicazioni " in modo che l'app possa aggiornarsi da sola.
Ma posso pensare a un ottimo motivo per avere keystore separati per app o famiglie di app separate. Se pensi di voler vendere un'app a qualcun altro affinché possa pubblicarla come aggiornamento dell'originale, dovrai condividere con loro il tuo unico keystore e la tua password per farlo. Probabilmente non è un grosso problema ma un po 'di preoccupazione per te e, forse, un problema di due diligence per un acquirente abbastanza grande.
Inoltre, non leggo davvero la stessa riga nella documentazione allo stesso modo di @ol_v_er. Penso che la linea attuale:
Dovresti firmare tutte le tue app con lo stesso certificato per tutta la durata prevista delle tue applicazioni.
(nota la mancanza di una virgola nella versione corrente) sta semplicemente sottolineando che la raccomandazione "a vita" si applica a tutte le app, non in realtà ti indirizza a utilizzare lo stesso certificato per tutte le tue app.
La documentazione ufficiale ci dice:
In generale, la strategia consigliata per tutti gli sviluppatori è firmare tutte le applicazioni con lo stesso certificato, per tutta la durata prevista delle applicazioni. Ci sono diversi motivi per cui dovresti farlo ...
https://developer.android.com/studio/publish/app-signing.html#considerations
Quindi sì, prova a firmare tutte le tue applicazioni con lo stesso certificato.
Voglio aggiungere qui qualche chiarimento, perché questa domanda e le risposte fornite mi creano confusione. È fondamentale capire cosa sia effettivamente un keystore.
Un keystore è solo un mezzo per archiviare in modo sicuro la coppia di chiavi pubblica / privata che viene utilizzata per firmare i tuoi apk Android. Quindi sì, puoi usare lo stesso keystore per firmare più apk, senza problemi. Puoi anche utilizzare lo stesso alias (ogni alias è un certificato) per firmare più apk e funzionerà. Tuttavia, ha implicazioni sulla sicurezza. Se il tuo singolo alias è compromesso, tutte le tue app saranno state compromesse.
Tuttavia, se un giorno intendi vendere i diritti sulle tue app, l'utilizzo dello stesso alias per tutte le tue app potrebbe non essere una buona idea. Tuttavia, l'utilizzo dello stesso keystore, a condizione di utilizzare un alias diverso per ogni apk, potrebbe non essere necessariamente una cattiva opzione. Sono sicuro che esiste un modo per spostare un certificato da un keystore a un altro, in modo da poter fornire in modo sicuro le chiavi necessarie solo per quel certificato all'acquirente.
Per essere molto chiaro, un keystore è proprio questo, un supporto di memorizzazione per le chiavi. Non svolge alcun ruolo effettivo nel processo di firma di un apk, ma serve solo a memorizzare le chiavi che vengono effettivamente utilizzate per firmare l'apk.
Riferimenti:
Comprensione keystore, certificati e alias
https://www.digitalocean.com/community/tutorials/java-keytool-essentials-working-with-java-keystores
Ovviamente! Puoi utilizzare lo stesso file keystore tutte le volte che vuoi. È sempre meglio utilizzare lo stesso file di archivio chiavi per tutte le applicazioni sviluppate. Ciò ti aiuterà se desideri aggiornare o modificare l'applicazione. A quel punto è necessario firmare la domanda con la stessa chiave.
Firmo tutte le mie app utilizzando lo stesso certificato (keystore). Ciò offre un vantaggio se cambio idea e voglio che le mie app condividano i loro dati.
Come forse saprai, Android identifica ogni app con un UID. Se tutte le tue app sono firmate dallo stesso certificato, puoi richiedere ad Android di assegnare lo stesso ID utente a più di un'app e poi farle funzionare in un unico processo e condividere i dati.
Da Android doc android: sharedUserId
android: sharedUserId
Il nome di un ID utente Linux che verrà condiviso con altre applicazioni. Per impostazione predefinita, Android assegna a ciascuna applicazione il proprio ID utente univoco. Tuttavia, se questo attributo è impostato sullo stesso valore per due o più applicazioni, condivideranno tutte lo stesso ID, a condizione che siano anche firmate dallo stesso certificato. Le applicazioni con lo stesso ID utente possono accedere ai dati reciproci e, se lo si desidera, possono essere eseguite nello stesso processo
Aggiornamento recente
Se vuoi iscriverti alla firma dell'app di Google devi usare una nuova chiave diversa per firmare il tuo apk o bundle altrimenti dopo il caricamento la console di Google ti darà un messaggio di errore che dice
Hai caricato un APK o un Android App Bundle firmato con una chiave che viene utilizzata anche per firmare gli APK forniti agli utenti. Poiché sei iscritto ad App Signing di Google Play, devi firmare il tuo APK o Android App Bundle con una nuova chiave prima di caricarlo