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

1. Panoramica

c7a9160ef7b184c7.png22e0b52f771c060d.png

Benvenuto in Integrazione dell'SDK di distribuzione dell'app Firebase nel codelab dell'app Android. In questo codelab, aggiungerai l'SDK Android di distribuzione app alla tua app per visualizzare 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 fare in modo che i tuoi tester abbiano effettuato l'accesso per ricevere gli aggiornamenti. Quindi trasferirai una nuova versione su 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 distribuzione app nella tua app
  • Come avvisare un tester quando è disponibile una nuova build non definitiva pronta per l'installazione
  • Come personalizzare l'SDK per adattarlo alle tue esigenze di test

Di cosa avrai bisogno

  • Android Studio versione 3.4+.
  • Codice d'esempio.
  • Un dispositivo di prova con Android 2.3+ e servizi Google Play 9.8 o successivi, o un emulatore con servizi Google Play 9.8 o successivi.
  • Se si utilizza un dispositivo, un cavo di connessione.

Come utilizzerai questo tutorial?

Leggilo solo Leggilo e completa gli esercizi

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

Novizio Intermedio Esperto

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 link .

3. Importa l'app di avviamento

Da Android Studio, seleziona la codelab-appdistribution-android/start ( cartella_studio_android.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 di console Firebase

Aggiungi un nuovo progetto Firebase

  1. Apri la console Firebase .
  2. Seleziona Aggiungi progetto , quindi chiama il tuo progetto "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 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 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 vista "Android" e individua la scheda "Script Gradle" e apri il file Gradle del modulo (a livello di app) (di solito app/build.gradle ).
  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 l'SDK Android di distribuzione app

In questo passaggio, aggiungerai l'SDK Android Firebase App Distribution alla tua app e visualizzerai avvisi in-app ai tuoi tester quando sono disponibili per l'installazione nuove build della tua app. 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 distribuzione app 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 la tua interfaccia utente (UI).

Inizieremo con la configurazione di base degli avvisi. È possibile utilizzare updateIfNewReleaseAvailable per visualizzare una finestra di dialogo di attivazione 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. Verifica 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 unico sul dispositivo di test che persiste negli aggiornamenti dell'app. Gli avvisi rimangono abilitati nel dispositivo di test fino a quando l'app non viene disinstallata o fino a quando 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 l'ultima versione.
  3. Verifica 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 chiede al tester di installare la nuova build al termine del download. L'SDK invia notifiche sull'avanzamento del download all'utente utilizzando NotificationManager. È possibile aggiungere il proprio indicatore di avanzamento allegando 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() 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 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 non definitiva 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. 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 sulla versione 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 durante il rilascio della tua app.

9935a41810344c61.png

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

Accetta l'invito

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

  1. Sul tuo dispositivo di prova Android, apri l'e-mail inviata da Firebase App Distribution e tocca Inizia .
  2. Nell'app Web Firebase App Distribution tester 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 Scarica , quindi installa ed esegui l'app!
  2. Quando l'app si avvia, ti chiede di abilitare gli avvisi di nuova build. Tocca Attiva .

b059e09acaa4779f.png

  1. Accedi con il tuo account tester..

22e0b52f771c060d.png

Sei tornato all'app. La prossima volta che esegui l'app, non è necessario accedere o accettare avvisi

c9f33df16a2680d.png

Distribuisci un aggiornamento ai tuoi tester

  1. Aggiorna il tuo versionName su "1.1" e versionCode su 2 nel tuo file di modulo (a livello di app) Gradle (di solito app/build.gradle).
  2. Crea il tuo APK utilizzando la tua normale procedura. 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

Avvisi di build di prova

  1. Assicurati di aver chiuso l'app se era aperta.
  2. Riavvia l'app.
  3. Al riavvio dell'app, 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 offrono maggiore flessibilità nella personalizzazione dell'esperienza di accesso del tester, in modo che possa adattarsi meglio all'aspetto dell'app.

L'esempio seguente verifica se il tester ha già effettuato l'accesso al proprio account tester di distribuzione app Firebase, 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()
    }

Al contrario, checkForUpdate() è già aggiunto in 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
    }

Crea e testa la tua implementazione

8. Congratulazioni!

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

Di cosa abbiamo parlato

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

Prossimi passi

Per saperne di più

Hai una domanda?

Segnala problemi