Avvisa i tester sulle nuove versioni della tua app con Firebase App Distribution Android SDK - Codelab

1. Panoramica

c7a9160ef7b184c7.png22e0b52f771c060d.png

Benvenuto nell'integrazione dell'SDK di distribuzione dell'app Firebase nel codelab della tua app Android. In questo codelab aggiungerai l'SDK Android di App Distribution alla tua app per visualizzare avvisi in-app ai tuoi tester quando saranno disponibili per il download nuove build. Imparerai come utilizzare sia una configurazione di base che una configurazione personalizzata per consentire ai tuoi tester di accedere per ricevere gli aggiornamenti. Quindi invierai una nuova versione a App Distribution e attiverai un avviso di nuova build direttamente nell'app.

Cosa imparerai

  • Come utilizzare App Distribution per distribuire un'app pre-release ai tester
  • Come integrare l'SDK Android di App Distribution nella tua app
  • Come avvisare un tester quando è disponibile una nuova build pre-release pronta per l'installazione
  • Come personalizzare l'SDK per adattarlo alle tue esigenze di test

Di cosa avrai bisogno

  • Ultima versione di Android Studio .
  • Codice d'esempio.
  • Un dispositivo di prova con Android 4.4+ e Google Play Services 9.8 o versioni successive oppure un emulatore con Google Play Services 9.8 o versioni successive.
  • Se si utilizza un dispositivo, un cavo di collegamento.

Come utilizzerai questo tutorial?

Leggetelo soltanto Leggilo e completa gli esercizi

Come valuteresti la tua esperienza con la creazione di app Android?

Novizio Intermedio Competente

2. Ottieni il codice di esempio

Clona il repository GitHub dalla riga di comando.

$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git

Se non hai git installato, puoi anche scaricare il progetto di esempio dalla sua pagina GitHub o facendo clic su questo collegamento .

3. Importa l'app iniziale

Da Android Studio, seleziona la directory codelab-appdistribution-android/start ( android_studio_folder.png ) dal download del codice di esempio ( File > Apri > .../codelab-appdistribution-android/start).

Ora dovresti avere il progetto iniziale aperto in Android Studio.

4. Crea un progetto della console Firebase

Aggiungi un nuovo progetto Firebase

  1. Apri la console Firebase .
  2. Seleziona Aggiungi progetto , quindi assegna al progetto il nome "Firebase Codelab".

Non è necessario abilitare Google Analytics per questo progetto.

  1. Fare clic su Crea progetto .

Aggiungi un'app a Firebase

Registra la tua app con Firebase . Utilizza "com.google.firebase.appdistributioncodelab" come nome del pacchetto.

Aggiungi il file google-services.json alla tua app

Dopo aver aggiunto il nome del pacchetto e selezionato Registra, segui questi passaggi per aggiungere google-services.json alla tua app:

  1. Fai clic su Scarica google-services.json per ottenere il file di configurazione Android Firebase.
  2. Copia il file google-services.json nella directory app nel tuo progetto.
  3. Dopo aver scaricato il file puoi saltare i passaggi successivi mostrati nella console (sono già stati eseguiti per te nel progetto build-android-start).

Aggiorna l'ID applicazione in modo che corrisponda alla tua app Firebase

  1. Nel menu a sinistra (scheda Progetto), assicurati di essere nella visualizzazione "Android", individua la scheda "Script Gradle" e apri il file Gradle del modulo (a livello di app) (di solito app/build.gradle.kts ).
  2. Modifica la proprietà applicationId in modo che corrisponda all'ID applicazione della tua app Firebase. Dovrebbe essere "com.google.firebase.appdistributioncodelab"

Sincronizza il tuo progetto con i file Gradle

Per assicurarti che tutte le dipendenze siano disponibili per la tua app, sincronizza il tuo progetto con i file Gradle selezionando File > Sincronizza progetto con file Gradle dalla barra degli strumenti di Android Studio.

5. Configura avvisi di nuove build in-app con l'SDK Android di App Distribution

In questo passaggio aggiungerai l'SDK Android Firebase App Distribution alla tua app e visualizzerai avvisi in-app ai tuoi tester quando saranno disponibili per l'installazione nuove build della tua app. A tale scopo, assicurati di aver abilitato l' API Firebase App Testers per il tuo progetto "Firebase Codelab" (nella console Google Cloud). Devi accedere con lo stesso account e selezionare il progetto corretto dal menu a discesa in alto.

Configura avvisi in-app

L'SDK Android di App Distribution offre due modi per impostare avvisi di build in-app per i tuoi tester:

  • Una configurazione di avviso di base, fornita con una finestra di dialogo predefinita da visualizzare ai tester.
  • Una configurazione avanzata degli avvisi che ti consente di personalizzare l'interfaccia utente (UI).

Inizieremo con la configurazione di base degli avvisi. È possibile utilizzare updateIfNewReleaseAvailable per visualizzare una finestra di dialogo di abilitazione degli avvisi predefinita per i tester che non hanno ancora abilitato gli avvisi e quindi verificare se è disponibile una nuova build. I tester abilitano gli avvisi accedendo a un account che ha accesso all'app in App Distribution. Quando viene chiamato, il metodo esegue la seguente sequenza:

  1. Controlla se un tester ha abilitato gli avvisi. In caso contrario, il metodo visualizza una finestra di dialogo predefinita che richiede ai tester di accedere ad App Distribution con il proprio account Google.

L'abilitazione degli avvisi è un processo una tantum sul dispositivo di prova che persiste attraverso gli aggiornamenti dell'app. Gli avvisi rimangono abilitati sul dispositivo di test finché l'app non viene disinstallata o finché non viene chiamato il metodo signOutTester .

  1. Verifica la presenza di nuove build disponibili per l'installazione del tester.
  2. Visualizza un avviso predefinito che richiede al tester di scaricare la versione più recente.
  3. Controlla il nuovo tipo di build prima di procedere con l'aggiornamento:
  4. Se la nuova build è un App Bundle (AAB), reindirizza il tester al Play Store per completare il processo di aggiornamento.
  5. Se la nuova build è un APK, l'SDK scarica la nuova build in background e richiede al tester di installare la nuova build al termine del download. L'SDK invia notifiche sull'avanzamento del download all'utente utilizzando NotificationManager. Puoi aggiungere il tuo indicatore di avanzamento collegando un gestore onProgressUpdate all'attività updateIfNewReleaseAvailable .

Puoi chiamare updateIfNewReleaseAvailable() in qualsiasi punto della tua app. Ad esempio, puoi chiamare updateIfNewReleaseAvailable() durante il metodo onResume() di MainActivity:

Apri MainActivity.kt e crea il metodo onResume() in questo modo:

MainActivity.kt

override fun onResume() {
    super.onResume()
    checkForUpdate()
}

Ora implementiamo il metodo checkForUpdate() .

MainActivity.kt

   private fun checkForUpdate() {
        firebaseAppDistribution.updateIfNewReleaseAvailable()
            .addOnProgressListener { updateProgress ->
                // (Optional) Implement custom progress updates in addition to
                // automatic NotificationManager updates.
            }
            .addOnFailureListener { e ->
                if (e is FirebaseAppDistributionException) {
                    // Handle exception.
                }
            }
    }

6. Crea e invita i tester a scaricare la tua app

In questo passaggio, creerai la tua app e testerai l'implementazione distribuendo la build ai tester utilizzando la console Firebase.

Crea la tua app

Quando sei pronto per distribuire una versione pre-release della tua app ai tester, crea il tuo APK seguendo la normale procedura. Devi firmare l'APK con la chiave di debug o la chiave di firma dell'app.

Distribuisci la tua app ai tester

Per distribuire la tua app ai tester, carica il file APK utilizzando la console Firebase:

  1. Apri la pagina Distribuzione app della console Firebase. Seleziona il tuo progetto Firebase quando richiesto.
  2. Nella pagina Versioni, seleziona l'app che desideri distribuire dal menu a discesa.

623460c3c8a82ce6.png

  1. Fare clic su Inizia

bf503b25066ff4a4.png

  1. Trascina il file APK della tua app sulla console per caricarlo.
  2. Una volta completato il caricamento, specifica i gruppi di tester e i singoli tester che desideri ricevano la build. (Aggiungi la tua email per ricevere l'invito.) Quindi, aggiungi le note di rilascio per la build. Per ulteriori informazioni sulla creazione di gruppi di tester, consulta Aggiungere e rimuovere tester .

3343048f0930e84b.png

  1. Fare clic su Distribuisci per rendere la build disponibile ai tester.

2be58fe195928bf9.png

Nella console Firebase, ora puoi vedere i tester che hai aggiunto nella versione della tua app.

9935a41810344c61.png

Poiché hai incluso il tuo indirizzo email, riceverai un'email da Firebase App Distribution che ti invita a testare l'app. Ora sei il primo tester! Segui le istruzioni in Accetta l'invito per configurarti come tester sul tuo dispositivo di test.

Accetta l'invito

Dovrai prima accettare l'invito a scaricare e testare la versione.

  1. Sul tuo dispositivo Android di prova, apri l'e-mail inviata da Firebase App Distribution e tocca Inizia .
  2. Nell'app Web per tester Firebase App Distribution visualizzata, accedi con il tuo Account Google e tocca Accetta invito. Ora puoi vedere la versione che sei invitato a testare.

c18cb684f8e82ad6.png

Scarica la versione dal dispositivo di prova

Quando accedi all'app codelab AppDistribution, puoi vedere che la versione è pronta per il download.

5414d9a536f25ece.png

  1. Tocca Scarica , quindi installa ed esegui l'app!
  2. All'avvio dell'app, ti viene chiesto di abilitare gli avvisi di nuova build. Tocca Attiva .

b059e09acaa4779f.png

  1. Accedi con il tuo account tester..

22e0b52f771c060d.png

Verrai riportato all'app. La prossima volta che eseguirai l'app, non sarà necessario accedere o accettare avvisi

c9f33df16a2680d.png

Distribuisci un aggiornamento ai tuoi tester

  1. Aggiorna il tuo versionName a "1.1" e versionCode a 2 nel file Gradle del tuo modulo (a livello di app) (solitamente app/build.gradle).
  2. Crea il tuo APK utilizzando la procedura normale. Devi firmare l'APK con la chiave di debug o la chiave di firma dell'app.
  3. Carica questo nuovo APK nella tua console Firebase, aggiungi nuovamente la tua email come tester e fai clic su Distribuisci .

2dfa702edfdce6b8.png

Testare gli avvisi di build

  1. Assicurati di aver chiuso l'app se era aperta.
  2. Riavvia l'app.
  3. Quando l'app si riavvia, ricevi un avviso Nuova versione disponibile.

987e3d0ba4e56f84.png

  1. Per ricevere la versione più recente, fare clic su Aggiorna .
  2. Se richiesto, scegli l'opzione per abilitare le installazioni da fonti sconosciute.
  3. Fare clic su Installa (o Aggiorna ) nella schermata successiva.

a7c7cd15d60bc764.png

  1. Congratulazioni! Sei riuscito ad aggiornare la tua app con gli avvisi integrati.

7. Personalizza l'accesso del tester

I metodi signInTester/signOutTester e isTesterSignedIn ti offrono maggiore flessibilità nella personalizzazione dell'esperienza di accesso del tester, in modo che possa corrispondere meglio all'aspetto della tua app.

L'esempio seguente controlla se il tester ha già effettuato l'accesso al proprio account tester Firebase App Distribution, quindi puoi scegliere di visualizzare l'interfaccia utente di accesso solo per i tester che non hanno ancora effettuato l'accesso. Dopo che il tester ha effettuato l'accesso, puoi quindi chiamare checkForUpdate per verificare se il tester ha accesso a una nuova build.

Disabilitiamo il controllo automatico degli aggiornamenti in onResume commentando la chiamata checkForUpdate() .

MainActivity.kt

override fun onResume() {
        super.onResume()
        //checkForupdate()
    }

Invece, checkForUpdate() è già aggiunto nell'OnClickListener di updatebutton.

Ora implementiamo il nostro metodo signIn() che farà accedere l'utente se è disconnesso o disconnetterà l'utente se ha già effettuato l'accesso.

MainActivity.kt

    private fun signIn() {
        if (isTesterSignedIn()) {
            firebaseAppDistribution.signOutTester()
            configureUpdateButton()
            configureSigninButton()
        } else {
            firebaseAppDistribution.signInTester()
        }
    }

Infine implementiamo il metodo isTesterSignedIn .

MainActivity.kt

    private fun isTesterSignedIn() : Boolean {
        return firebaseAppDistribution.isTesterSignedIn
    }

Costruisci e testa la tua implementazione

8. Congratulazioni!

Hai integrato la funzionalità "visualizzazione avvisi in-app" in un'app utilizzando l'SDK Android Firebase App Distribution.

Di cosa abbiamo parlato

  • Distribuzione dell'app Firebase
  • Distribuzione app Firebase Nuovi avvisi Android SDK

Prossimi passi

Saperne di più

Hai una domanda?

Segnala problemi