Avvisa i tester sulle nuove versioni delle tue app con Firebase App Distribution SDK Android - Codelab

1. Panoramica

c7a9160ef7b184c7.png22e0b52f771c060d.png

Ti diamo il benvenuto all'SDK Integrating the Firebase App Distribution nel codelab della tua app Android. In questo codelab, aggiungerai l'SDK Android di App Distribution alla tua app per mostrare avvisi in-app ai tuoi tester quando sono disponibili nuove build per il download. 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 nuovo avviso di build direttamente nell'app.

Cosa imparerai

  • Come utilizzare App Distribution per distribuire un'app non definitiva ai tester
  • Come integrare l'SDK Android di App Distribution nella tua app
  • Come avvisare un tester quando è disponibile una nuova versione preliminare pronta per l'installazione
  • Come personalizzare l'SDK per soddisfare le 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 o un emulatore con Google Play Services 9.8 o versioni successive.
  • Se si utilizza un dispositivo, un cavo di connessione.

Come utilizzerai questo tutorial?

Leggi solo attraverso Leggilo e completa gli esercizi

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

Novizio Intermedio Competente

2. Ottieni il codice di esempio

Clonare il repository GitHub dalla riga di comando.

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

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

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 console Firebase

Aggiungi un nuovo progetto Firebase

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

Non è necessario abilitare Google Analytics per questo progetto.

  1. Fai 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 aver selezionato Registrati, 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 di Firebase.
  2. Copia il file google-services.json nella directory app nel tuo progetto.
  3. Dopo che il file è stato scaricato puoi saltare i passaggi successivi mostrati nella console (sono già stati fatti 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 vista "Android" e individua la scheda "Gradle Scripts" 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 i file Gradle dalla barra degli strumenti di Android Studio.

5. Imposta avvisi di nuova build in-app con App Distribution Android SDK

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

Configura avvisi in-app

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

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

Inizieremo con la configurazione di avviso di base. Puoi utilizzare updateIfNewReleaseAvailable per visualizzare una finestra di dialogo di abilitazione degli avvisi predefinita ai tester che non hanno ancora abilitato gli avvisi e quindi controllare 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 a App Distribution con il proprio account Google.

L'abilitazione degli avvisi è un processo una tantum sul dispositivo di test che persiste tra 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 da parte del tester.
  2. Visualizza un avviso predefinito che richiede al tester di scaricare l'ultima versione.
  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 tramite 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 questa fase, crei la tua app e testi la tua 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 utilizzando 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 di Firebase:

  1. Apri la pagina Distribuzione app della console Firebase. Seleziona il tuo progetto Firebase quando richiesto.
  2. Nella pagina Release, 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. Al termine del caricamento, specifica i gruppi di tester e i singoli tester a cui desideri ricevere 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 disponibile la build ai tester.

2be58fe195928bf9.png

Nella console di 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 configurare come tester sul tuo dispositivo di prova.

Accetta l'invito

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

  1. Sul dispositivo di prova Android, apri l'e-mail inviata da Firebase App Distribution e tocca Inizia .
  2. Nell'app Web del tester di 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 di AppDistribution, puoi vedere che la versione è pronta per il download.

5414d9a536f25ece.png

  1. Tocca Download , quindi installa ed esegui l'app!
  2. Quando l'app si avvia, ti chiede di abilitare i nuovi avvisi di build. Tocca Attiva .

b059e09acaa4779f.png

  1. Accedi con il tuo account tester..

22e0b52f771c060d.png

Si torna all'app. La prossima volta che eseguirai l'app, non dovrai effettuare l'accesso o accettare gli avvisi

c9f33df16a2680d.png

Distribuisci un aggiornamento ai tuoi tester

  1. Aggiorna il tuo versionName a "1.1" e versionCode a 2 nel tuo file Gradle del modulo (a livello di app) (di solito app/build.gradle).
  2. Crea il tuo APK utilizzando il normale processo. 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 di nuovo 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 viene riavviata, ricevi un avviso Nuova versione disponibile.

987e3d0ba4e56f84.png

  1. Per ricevere l'ultima versione, fai 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 stato in grado di aggiornare la tua app con gli avvisi integrati.

7. Personalizza l'accesso del tester

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

L'esempio seguente verifica se il tester ha già eseguito l'accesso al proprio account di tester di 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 chiama 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 in OnClickListener di updatebutton.

Ora, implementiamo il nostro metodo signIn() che effettuerà l'accesso dell'utente se è disconnesso o disconnetterà l'utente se è già connesso.

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
    }

Crea e testa la tua implementazione

8. Congratulazioni!

Hai integrato la funzione "Visualizzazione degli avvisi in-app" in un'app utilizzando l'SDK Android di Firebase App Distribution.

Di cosa abbiamo parlato

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

Prossimi passi

Saperne di più

Hai una domanda?

Segnala problemi