Preparare l'app per la release

Per preparare l'app al rilascio, devi configurare, creare e testare una versione di release dell'app. Le attività di configurazione prevedono attività di base di pulizia e modifica del codice che consentono di ottimizzare l'app. Il processo di compilazione è simile al processo di compilazione di debug e può essere eseguito utilizzando gli strumenti JDK e SDK Android.

Le attività di test servono come controllo finale, contribuendo a garantire che l'app funzioni come previsto in condizioni reali. Firebase offre un'ampia gamma di dispositivi di test fisici e virtuali tramite Firebase Test Lab per migliorare la qualità della tua app.

Quando hai finito di preparare la tua app per il rilascio, hai un file APK firmato, che puoi distribuire direttamente agli utenti o tramite un marketplace di app come Google Play.

Questo documento riassume le attività principali che devi eseguire per preparare la tua app per il rilascio. Le attività descritte in questa pagina si applicano a tutte le app Android, indipendentemente da come vengono rilasciate o distribuite agli utenti. Se stai rilasciando la tua app tramite Google Play, leggi l'articolo Rilasciare in sicurezza.

Nota: come best practice, prima di eseguire le attività descritte in questa pagina, assicurati che la tua app soddisfi tutti i criteri di rilascio relativi a funzionalità, prestazioni e stabilità.

Mostra come il processo di preparazione si inserisce nel processo di sviluppo.

Figura 1. La preparazione per la release è un'attività di sviluppo obbligatoria ed è il primo passo del processo di pubblicazione.

Attività per la preparazione al rilascio

Per rilasciare l'app agli utenti, devi creare un pacchetto pronto per il rilascio che questi ultimi possano installare ed eseguire sui propri dispositivi Android. Il pacchetto pronto per la release contiene gli stessi componenti del file APK di debug (codice sorgente compilato, risorse, file manifest e così via) e viene creato utilizzando gli stessi strumenti di build. Tuttavia, a differenza del file APK di debug, il file APK pronto per la release è firmato con il tuo certificato ed è ottimizzato con lo strumento zipalign.

Mostra le cinque attività che esegui per preparare la tua app al rilascio

Figura 2. Sono cinque le attività principali per preparare la tua app per il rilascio.

Se crei la tua app con Android Studio, di solito le attività di firma e ottimizzazione sono semplici. Ad esempio, puoi usare Android Studio con i file di build Gradle per compilare, firmare e ottimizzare la tua app contemporaneamente. Puoi anche configurare i file di build Gradle affinché facciano lo stesso quando crei dalla riga di comando. Per ulteriori dettagli sull'utilizzo dei file di build Gradle, consulta Configurare la build.

Per preparare l'app al rilascio, in genere devi svolgere cinque attività principali, come mostrato nella Figura 2. Ogni attività principale può includere una o più attività più piccole, a seconda di come stai rilasciando l'app. Ad esempio, se stai rilasciando l'app tramite Google Play, potresti voler aggiungere regole di filtro speciali al file manifest durante la configurazione della release dell'app. Analogamente, per rispettare le linee guida di pubblicazione di Google Play, potresti dover preparare screenshot e creare testo promozionale mentre raccogli i materiali per l'uscita.

In genere esegui le attività elencate nella Figura 2 dopo avere eseguito accuratamente il debug e il test dell'app. L'SDK Android contiene diversi strumenti per i test e il debug delle tue app Android. Per saperne di più, vedi Eseguire il debug dell'app e Testare l'app.

Raccogli materiali e risorse

Per preparare l'app per il rilascio, devi raccogliere diversi elementi di supporto. Sono incluse come minimo le chiavi di crittografia per la firma della tua app e un'icona dell'app. Potresti anche voler includere un contratto di licenza con l'utente finale.

Chiavi di crittografia

Android richiede che tutti gli APK siano firmati digitalmente con un certificato prima di essere installati su un dispositivo o aggiornati. Per quanto riguarda il Google Play Store, per tutte le app create dopo agosto 2021 è necessario utilizzare la firma dell'app di Google Play. Tuttavia, per caricare il tuo AAB in Play Console è comunque necessario firmarlo con il certificato di sviluppatore. Le app meno recenti possono comunque autofirmare l'app, ma devi firmare l'app prima di poterla caricare, indipendentemente dal fatto che utilizzi la firma dell'app di Google Play.

Per scoprire di più sui requisiti dei certificati, vedi Firmare l'app.

Importante: la tua app deve essere firmata con una chiave di crittografia con un periodo di validità che termina dopo il 22 ottobre 2033.

Potresti anche dover ottenere altre chiavi di rilascio se la tua app accede a un servizio o utilizza una libreria di terze parti che richiede l'utilizzo di una chiave basata sulla tua chiave privata.

Icona dell'app

L'icona dell'app consente agli utenti di identificare l'app nella schermata Home e nella finestra Avvio app del dispositivo. L'opzione è disponibile anche in Gestisci applicazioni, I miei download e altrove. Inoltre, i servizi di pubblicazione come Google Play mostrano la tua icona agli utenti. Assicurati di disporre dell'icona dell'app e che soddisfi le linee guida per le icone consigliate.

Nota: se stai rilasciando la tua app su Google Play, devi creare una versione ad alta risoluzione dell'icona. Per ulteriori informazioni, consulta Aggiungere asset di anteprima per mettere in evidenza l'app.

Contratto di licenza con l'utente finale

Valuta la possibilità di preparare un contratto di licenza con l'utente finale (EULA) per la tua app. Questo Contratto di licenza con l'utente finale può aiutarti a proteggere la tua persona, la tua organizzazione e la tua proprietà intellettuale; ti consigliamo di fornirne uno con la tua app.

Materiali vari

Potresti anche dover preparare materiali promozionali e di marketing per pubblicizzare la tua app. Ad esempio, se stai rilasciando la tua app su Google Play, dovrai preparare del testo promozionale e creare screenshot dell'app. Per ulteriori informazioni, consulta la pagina Aggiungere risorse di anteprima per mettere in evidenza la tua app.

Configura la tua app per la release

Dopo aver raccolto tutti i materiali di supporto, puoi iniziare a configurare l'app per la release. Questa sezione fornisce un riepilogo delle modifiche alla configurazione che consigliamo di apportare al codice sorgente, ai file di risorse e al manifest dell'app prima di rilasciare l'app.

Sebbene la maggior parte delle modifiche alla configurazione elencate in questa sezione sia facoltativa, sono considerate buone pratiche di programmazione e ti invitiamo a implementarle. In alcuni casi, potresti aver già apportato queste modifiche alla configurazione come parte del processo di sviluppo.

Scegli un ID applicazione appropriato

Assicurati di scegliere un ID applicazione adatto all'intero ciclo di vita della tua app. Non puoi modificare l'ID applicazione dopo aver distribuito l'app agli utenti. Per impostarla, utilizza la proprietà applicationId nel file build.gradle o build.gradle.kts a livello di modulo. Per ulteriori informazioni, consulta Impostare l'ID applicazione.

Disattiva il debug

Per configurare l'eventuale debug dell'APK, utilizza il flag debuggable per Groovy o il flag isDebuggable per lo script Kotlin:

Kotlin

  android {
    ...
    buildTypes {
      release {
        isDebuggable = false
        ...
      }
      debug {
        isDebuggable = true
        ...
      }
    }
    ...
  }
  

Trendy

  android {
    ...
    buildTypes {
      release {
        debuggable false
        ...
      }
      debug {
        debuggable true
        ...
      }
    }
    ...
  }

Attiva e configura la riduzione delle app

Molte delle seguenti ottimizzazioni possono essere automatizzate attivando la contrazione per la build della release. Ad esempio, puoi aggiungere regole ProGuard per rimuovere istruzioni di log e lo strumento di riduzione identificherà e rimuoverà il codice e le risorse inutilizzati. Lo shrinker può anche sostituire i nomi di classi e variabili con nomi più brevi per ridurre ulteriormente le dimensioni DEX.

Disattiva logging

Disattiva il logging prima di creare la tua app per la release. Puoi disattivare il logging rimuovendo le chiamate ai metodi Log nei file sorgente. Inoltre, rimuovi tutti i file di log o i file di test statici creati nel tuo progetto.

Inoltre, rimuovi tutte le chiamate di tracciamento Debug che hai aggiunto al codice, ad esempio le chiamate ai metodi startMethodTracing() e stopMethodTracing().

Importante: assicurati di disattivare il debug per l'app se utilizzi WebView per visualizzare contenuti a pagamento o se usi interfacce JavaScript, poiché il debug consente agli utenti di inserire script ed estrarre contenuti utilizzando Chrome DevTools. Per disattivare il debug, utilizza il metodo WebView.setWebContentsDebuggingEnabled().

Esegui la pulizia delle directory di progetto

Esegui la pulizia del progetto e assicurati che sia conforme alla struttura di directory descritta nella Panoramica dei progetti. L'abbandono di file randagi o orfani nel progetto può impedire la compilazione dell'app e causare un comportamento imprevedibile dell'app. Esegui almeno le seguenti attività di pulizia:

  • Esamina i contenuti delle directory cpp/, lib/ e src/. La directory cpp/ deve contenere solo file di origine associati all'NDK di Android, ad esempio file di origine C o C++, file di intestazione o makefiles. La directory lib/ deve contenere solo file di librerie di terze parti o file di librerie private, incluse le librerie statiche e condivise predefinite. La directory src/ deve contenere solo i file di origine della tua app (file Java, Kotlin e AIDL). La directory src/ non deve contenere file JAR.
  • Controlla nel tuo progetto la presenza di file di dati privati o proprietari che la tua app non utilizza e rimuovili. Ad esempio, cerca nella directory res/ del progetto i precedenti file disegnabili, i file di layout e i file di valori che non utilizzi più ed eliminali.
  • Controlla se nella directory lib/ sono presenti librerie di test e rimuovile se non vengono più utilizzate dalla tua app.
  • Controlla i contenuti della directory assets/ e della directory res/raw/ per verificare la presenza di file di asset non elaborati e file statici che devi aggiornare o rimuovere prima del rilascio.

Rivedi e aggiorna le impostazioni del file manifest e della build Gradle

Verifica che i seguenti elementi del file manifest e della build siano impostati correttamente:

  • Elemento <uses-permission>

    Specifica solo le autorizzazioni pertinenti e necessarie per la tua app.

  • Attributi android:icon e android:label

    Devi specificare i valori per questi attributi, che si trovano nell'elemento <application>.

  • Proprietà versionCode e versionName

    Ti consigliamo di specificare i valori di queste proprietà, che si trovano nel file build.gradle o build.gradle.kts a livello di modulo dell'app. Per ulteriori informazioni, consulta Eseguire il controllo della versione dell'app.

Esistono diversi elementi aggiuntivi del file di build che puoi impostare se rilasci la tua app su Google Play. Ad esempio, gli attributi minSdk e targetSdk, che si trovano nel file build.gradle o build.gradle.kts a livello di modulo dell'app. Per ulteriori informazioni su queste e altre impostazioni di Google Play, consulta la sezione Filtri su Google Play.

Risolvi i problemi di compatibilità

Android offre diversi strumenti e tecniche per rendere la tua app compatibile con una vasta gamma di dispositivi. Per rendere disponibile la tua app al maggior numero di utenti, considera le seguenti azioni:

Aggiunta del supporto per più configurazioni schermo.
Assicurati di rispettare le best practice per il supporto di più schermi. Supportando più configurazioni dello schermo, puoi creare un'app che funzioni correttamente e che venga visualizzata correttamente su tutte le dimensioni di schermo supportate da Android.
Ottimizza la tua app per schermi più grandi.
Puoi ottimizzare la tua app in modo che funzioni bene sui dispositivi con display di grandi dimensioni come tablet e pieghevoli. Ad esempio, i layout dei dettagli dell'elenco possono migliorare l'usabilità su schermi più grandi.
Prendi in considerazione l'utilizzo delle librerie Jetpack.
Jetpack è una suite di librerie che aiuta gli sviluppatori a seguire le best practice, ridurre il codice boilerplate e scrivere codice che funzioni in modo coerente su tutti i dispositivi e le versioni Android.

Aggiorna gli URL per server e servizi

Se la tua app accede a server o servizi remoti, assicurati di utilizzare l'URL o il percorso di produzione del server o del servizio e non un URL o un percorso di test.

Implementare le licenze per Google Play

Se stai rilasciando un'app a pagamento tramite Google Play, valuta la possibilità di aggiungere il supporto per le licenze di Google Play. Le licenze ti consentono di controllare l'accesso alla tua app a seconda che l'utente corrente l'abbia acquistata. L'utilizzo delle licenze di Google Play è facoltativo, anche se rilasci la tua app tramite Google Play.

Per ulteriori informazioni sul servizio di licenze di Google Play e su come utilizzarlo nella tua app, vedi Licenze delle app.

Crea la tua app per la release

Dopo aver completato la configurazione dell'app, puoi crearla in un file APK pronto per la release firmato e ottimizzato. Il JDK include strumenti per la firma del file APK (Keytool e Jarsigner), mentre l'SDK Android include strumenti per la compilazione e l'ottimizzazione del file APK. Se usi Android Studio o il sistema di build Gradle dalla riga di comando, puoi automatizzare l'intero processo di compilazione. Per ulteriori informazioni sulla configurazione delle build Gradle, consulta Configurare le varianti di build.

Se utilizzi un sistema di integrazione continua, puoi configurare un'attività per automatizzare il processo di rilascio. Non si limita alla creazione dell'APK o dell'AAB di release. Puoi anche configurarlo in modo che carichi automaticamente gli elementi della build in Play Console.

Crea con Android Studio

Puoi usare il sistema di build Gradle, integrato con Android Studio, per creare un file APK pronto per la release, firmato con la tua chiave privata e ottimizzato. Per informazioni su come configurare ed eseguire build da Android Studio, consulta Creare ed eseguire un'app.

Il processo di compilazione presuppone che tu disponga di un certificato e di una chiave privata adatti a firmare la tua app. Se non disponi di un certificato e di una chiave privata adatti, Android Studio può aiutarti a generarne uno. Per ulteriori informazioni sulla procedura di firma, consulta l'articolo Firmare l'app.

Prepara risorse e server esterni

Se la tua app si basa su un server remoto, assicurati che il server sia sicuro e che sia configurato per l'uso in produzione. Questo è particolarmente importante se implementi la fatturazione in-app nell'app ed esegui il passaggio di verifica della firma su un server remoto.

Inoltre, se la tua app recupera contenuti da un server remoto o da un servizio in tempo reale (come un feed di contenuti), assicurati che i contenuti che stai fornendo siano aggiornati e pronti per la produzione.

Testare la release dell'app

Il test della versione di release dell'app consente di verificare che l'app venga eseguita correttamente in condizioni realistiche del dispositivo e della rete. Idealmente, testa la tua app su almeno un dispositivo delle dimensioni di un telefono e un tablet per verificare che gli elementi dell'interfaccia utente siano dimensionati correttamente e che le prestazioni e l'efficienza della batteria dell'app siano accettabili. Firebase Test Lab può essere utile anche per eseguire test su una varietà di dispositivi e versioni del sistema operativo Android diversi.

Consulta Qualità dell'app principale come punto di partenza per i test. Una volta completati i test e verificato che la versione di release dell'app funzioni correttamente, puoi rilasciare l'app per gli utenti. Per ulteriori informazioni, consulta Rilasciare l'app agli utenti.