Qual è il vantaggio di creare un APK firmato?
I punti importanti da capire sulla firma delle applicazioni Android sono:
- Tutte le applicazioni devono essere firmate. Il sistema non installerà un'applicazione su un emulatore o un dispositivo se non è firmata.
- Per testare e fare il debug della tua applicazione, gli strumenti di compilazione firmano la tua applicazione con una speciale chiave di debug che viene creata dagli strumenti di compilazione di Android SDK.
- Quando sei pronto a rilasciare la tua applicazione per gli utenti finali, devi firmarla con una chiave privata adatta. Non puoi pubblicare un'applicazione firmata con la chiave di debug generata dagli strumenti dell'SDK.
- Puoi usare certificati autofirmati per firmare le tue applicazioni. Non è necessaria alcuna autorità di certificazione.
- Il sistema verifica la data di scadenza di un certificato firmatario solo al momento dell'installazione. Se il certificato del firmatario di un'applicazione scade dopo che l'applicazione è stata installata, l'applicazione continuerà a funzionare normalmente.
- Puoi usare gli strumenti standard - Keytool e Jarsigner - per generare le chiavi e firmare i file .apk della tua applicazione.
- Dopo aver firmato la tua applicazione per il rilascio, ti consigliamo di usare lo strumento di allineamento zip per ottimizzare il pacchetto APK finale.
Il sistema Android non installerà o eseguirà un'applicazione che non è firmata in modo appropriato. Questo vale ovunque il sistema Android venga eseguito, sia su un dispositivo reale che su un emulatore. Per questo motivo, devi impostare la firma per la tua applicazione prima di poterla eseguire o fare il debug su un emulatore o su un dispositivo
Perché significa:
Alcuni aspetti della firma delle applicazioni possono influenzare il tuo approccio allo sviluppo della tua applicazione, specialmente se hai intenzione di rilasciare più applicazioni.
In generale, la strategia raccomandata per tutti gli sviluppatori è di firmare tutte le tue applicazioni con lo stesso certificato, per tutta la durata prevista delle tue applicazioni. Ci sono diverse ragioni per cui dovresti farlo:
- Aggiornamento dell'applicazione - Quando rilasci gli aggiornamenti della tua applicazione, devi continuare a firmare gli aggiornamenti con lo stesso certificato o set di certificati, se vuoi che gli utenti possano passare senza problemi alla nuova versione. Quando il sistema sta installando un aggiornamento di un'applicazione, confronta i certificati della nuova versione con quelli della versione esistente. Se i certificati corrispondono esattamente, compresi i dati del certificato e l'ordine, allora il sistema permette l'aggiornamento. Se firmi la nuova versione senza usare certificati corrispondenti, devi anche assegnare un nome di pacchetto diverso all'applicazione - in questo caso, l'utente installa la nuova versione come un'applicazione completamente nuova.
- Modularità dell'applicazione - Il sistema Android permette alle applicazioni che sono firmate dallo stesso certificato di girare nello stesso processo, se le applicazioni lo richiedono, in modo che il sistema le tratti come una singola applicazione. In questo modo è possibile distribuire l'applicazione in moduli, e gli utenti possono aggiornare ciascuno dei moduli indipendentemente, se necessario.
- Condivisione di codice/dati attraverso i permessi - Il sistema Android fornisce l'applicazione dei permessi basata sulla firma, in modo che un'applicazione possa esporre funzionalità ad un'altra applicazione che è firmata con un certificato specificato. Firmando più applicazioni con lo stesso certificato e utilizzando i controlli dei permessi basati sulla firma, le vostre applicazioni possono condividere codice e dati in modo sicuro.
Un'altra considerazione importante nel determinare la vostra strategia di firma è come impostare il periodo di validità della chiave che userete per firmare le vostre applicazioni.
- Se avete intenzione di supportare gli aggiornamenti per una singola applicazione, dovreste assicurarvi che la vostra chiave abbia un periodo di validità che superi la durata di vita prevista di quella applicazione. Si raccomanda un periodo di validità di 25 anni o più. Quando il periodo di validità della chiave scade, gli utenti non saranno più in grado di aggiornarsi senza problemi alle nuove versioni dell'applicazione.
- Se si firmeranno più applicazioni distinte con la stessa chiave, ci si dovrebbe assicurare che il periodo di validità della chiave superi la durata prevista di tutte le versioni di tutte le applicazioni, comprese le applicazioni dipendenti che potrebbero essere aggiunte alla suite in futuro.
- Se hai intenzione di pubblicare le tue applicazioni su Google Play, la chiave che usi per firmare le applicazioni deve avere un periodo di validità che termina dopo il 22 ottobre 2033. Google Play applica questo requisito per garantire che gli utenti possano aggiornare senza problemi le applicazioni quando sono disponibili nuove versioni.
Fonte: Documentazione Android