1. Visão geral
Este é o codelab "Como integrar o SDK do Firebase App Distribution no seu app Android". Neste codelab, você vai adicionar o SDK do Android do App Distribution ao seu app para mostrar alertas aos testadores quando novos builds estiverem disponíveis para download. Você vai aprender a usar uma configuração básica e uma personalizada para que os testadores façam login e recebam atualizações. Em seguida, você vai enviar uma nova versão para o App Distribution e acionar um novo alerta de build no app.
O que você vai aprender
- Como usar o App Distribution para distribuir um app de pré-lançamento para os testadores
- Como integrar o SDK do Android para App Distribution ao seu app
- Como alertar um testador quando houver um novo build de pré-lançamento pronto para instalação
- Como personalizar o SDK para atender às suas necessidades de teste
O que é necessário
- Versão mais recente do Android Studio.
- Exemplo de código.
- Um dispositivo de teste com o Android 4.4 ou versões mais recentes e o Google Play Services 9.8 ou versões mais recentes, ou um emulador com o Google Play Services 9.8 ou versões mais recentes.
- Se estiver usando um dispositivo, um cabo de conexão.
Como você usará este tutorial?
Como você classificaria sua experiência com a criação de apps Android?
2. Acessar o exemplo de código
Clone o repositório do GitHub na linha de comando.
$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git
Se você não tiver o git instalado, faça o download do projeto de exemplo na página do GitHub ou clique neste link (link em inglês).
3. Importar o app inicial
No Android Studio, selecione o diretório codelab-appdistribution-android/start
( ) no download do exemplo de código (File > Open > .../codelab-appdistribution-android/start).
O projeto inicial deve estar aberto no Android Studio.
4. Criar um projeto do Console do Firebase
Adicionar um novo projeto do Firebase
- Abra o Console do Firebase.
- Selecione Adicionar projeto e nomeie o projeto como "Firebase Codelab".
Você não precisa ativar o Google Analytics neste projeto.
- Clique em Criar projeto.
Adicionar um app ao Firebase
Registre seu app com o Firebase. Use "com.google.firebase.appdistributioncodelab" como o nome do pacote.
Adicionar o arquivo google-services.json ao app
Depois de adicionar o nome do pacote e selecionar "Registrar", siga estas etapas para adicionar o google-services.json ao app:
- Clique em Fazer o download do google-services.json para receber o arquivo de configuração do Firebase para Android.
- Copie o arquivo google-services.json para o diretório
app
do seu projeto. - Depois que o arquivo for transferido, você poderá Pular as próximas etapas mostradas no console. Elas já foram concluídas no projeto build-android-start.
Atualizar o ID do app para corresponder ao seu app do Firebase
- No menu à esquerda (guia "Project"), verifique se você está na visualização "Android" e localize a guia "Gradle Scripts" e abra o arquivo do Gradle do módulo (nível do app), geralmente
app/build.gradle.kts
. - Altere a propriedade
applicationId
para corresponder ao ID do seu app do Firebase. Deve ser "com.google.firebase.appdistributioncodelab"
Sincronizar o projeto com arquivos do Gradle
Para garantir que todas as dependências estejam disponíveis para o app, sincronize seu projeto com os arquivos do Gradle selecionando File > Sync Project with Gradle Files na barra de ferramentas do Android Studio.
5. Configurar novos alertas de build no app com o SDK do Android para App Distribution
Nesta etapa, você vai adicionar o SDK do Firebase App Distribution para Android ao seu app e mostrar alertas no app para os testadores quando novos builds estiverem disponíveis para instalação. Para isso, verifique se você ativou a API Firebase App Testers para seu projeto "Firebase Codelab" (no console do Google Cloud). Você precisa fazer login com a mesma conta e selecionar o projeto correto no menu suspenso na parte de cima.
Configurar alertas no app
O SDK do App Distribution para Android oferece duas maneiras de configurar alertas de build no app para os testadores:
- Uma configuração básica de alerta, que vem com uma caixa de diálogo predefinida para ser exibida aos testadores.
- Uma configuração de alerta avançada, que permite personalizar a interface do usuário (IU).
Vamos começar com a configuração básica de alertas. Use updateIfNewReleaseAvailable
para mostrar uma caixa de diálogo predefinida "Ativar alertas" para os testadores que ainda não ativaram os alertas e verificar se um novo build está disponível. Para ativar os alertas, os testadores fazem login em uma conta que tem acesso ao app no App Distribution. Quando chamado, o método gera a seguinte sequência:
- Verifica se um testador ativou alertas. Caso contrário, o método exibe uma caixa de diálogo pré-criada que solicita que os testadores façam login no App Distribution com a Conta do Google.
Ativar alertas é um processo único no dispositivo de teste que persiste entre as atualizações do app. Os alertas permanecem ativados no dispositivo de teste até que o app seja desinstalado ou o método signOutTester
seja chamado.
- Verifica se há builds recém-disponibilizados para a instalação do testador.
- Exibe um alerta pré-criado solicitando que o testador faça o download da versão mais recente.
- Verifica o novo tipo de build antes de continuar com a atualização:
- Se o novo build for um pacote de app (AAB), o testador será redirecionado para a Play Store para concluir o processo de atualização.
- Se a nova versão for um APK, o SDK fará o download da nova versão em segundo plano e solicitará que o testador instale a nova versão quando o download for concluído. O SDK envia notificações de progresso de download ao usuário usando
NotificationManager.
. Você pode adicionar seu próprio indicador de progresso anexando um gerenciadoronProgressUpdate
à tarefaupdateIfNewReleaseAvailable
.
Você pode chamar updateIfNewReleaseAvailable()
a qualquer momento no app. Por exemplo, é possível chamar updateIfNewReleaseAvailable()
durante o método onResume()
da MainActivity:
Abra MainActivity.kt e crie o método onResume()
assim:
MainActivity.kt
override fun onResume() {
super.onResume()
checkForUpdate()
}
Agora, vamos implementar o método checkForUpdate()
.
MainActivity.kt (link em inglês)
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. Criar e convidar testadores para fazer o download do app
Nesta etapa, você cria seu app e testa a implementação distribuindo o build para os testadores usando o Console do Firebase.
Criar seu app
Quando estiver tudo pronto para distribuir uma versão de pré-lançamento do app para os testadores, crie o APK usando seu processo normal. Você precisa assinar o APK com sua chave de depuração ou chave de assinatura do app.
Distribuir seu app para os testadores
Para distribuir seu aplicativo para os testadores, faça o upload do arquivo APK usando o Console do Firebase:
- Abra a página "App Distribution" do Console do Firebase. Selecione seu projeto do Firebase quando solicitado.
- Na página "Versões", selecione o app que você quer distribuir no menu suspenso.
- Clique em Começar.
- Arraste o arquivo APK do seu aplicativo para o console para fazer o upload.
- Quando o upload for concluído, especifique os grupos de testadores e os testadores individuais que devem receber o build. Adicione seu e-mail para receber o convite. Em seguida, adicione notas ao build. Para saber mais sobre a criação de grupos de testadores, consulte Adicionar e remover testadores.
- Clique em Distribuir para disponibilizar o build para os testadores.
No Console do Firebase, agora é possível conferir os testadores adicionados na versão do app.
Como você incluiu seu endereço de e-mail, vai receber um e-mail do Firebase App Distribution convidando você a testar o app. Você é o primeiro testador! Siga as instruções em "Aceitar o convite" para se inscrever como testador no dispositivo.
Aceitar o convite
Primeiro, você precisa aceitar o convite para fazer o download e testar a versão.
- No dispositivo de teste Android, abra o e-mail enviado pelo Firebase App Distribution e toque em Começar.
- No app da Web para testadores do Firebase App Distribution, faça login com sua Conta do Google e toque em Aceitar convite. Agora você pode ver a versão que recebeu convite para testar.
Faça o download da versão no dispositivo de teste
Quando você navega até o app do codelab AppDistribution, percebe que a versão está pronta para download.
- Toque em Fazer o download, instale e execute o app.
- Quando o app for iniciado, ele vai pedir que você ative os novos alertas de build. Toque em Ativar.
- Faça login com sua conta de testador.
Você vai voltar ao app. Na próxima vez que você executar o app, não será necessário fazer login nem aceitar alertas
Distribuir uma atualização para seus testadores
- Atualize o versionName para "1.1". e versionCode como 2 no arquivo Gradle do módulo (nível do app), geralmente app/build.gradle.
- Crie o APK usando seu processo normal. Você precisa assinar o APK com sua chave de depuração ou chave de assinatura do app.
- Faça o upload do novo APK no Console do Firebase, adicione seu e-mail como testador novamente e clique em Distribuir.
Testar alertas de build
- Feche o app se ele estiver aberto.
- Reinicie o app.
- Quando o app é reiniciado, você recebe um alerta de "Nova versão disponível".
- Para receber a versão mais recente, clique em Atualizar.
- Se necessário, escolha a opção para ativar as instalações de fontes desconhecidas.
- Clique em Instalar (ou Atualizar) na próxima tela.
- Parabéns! Você conseguiu atualizar o app com os alertas integrados.
7. Personalizar o login do testador
Os métodos signInTester/signOutTester e isTesterSignedIn oferecem mais flexibilidade para personalizar a experiência de login do testador para corresponder melhor com a experiência do app.
O exemplo a seguir verifica se o testador já fez login na conta dele do Firebase App Distribution. Assim, você pode mostrar a interface de login apenas para os testadores que ainda não fizeram login. Depois que o testador fizer login, você pode chamar checkForUpdate para verificar se tem acesso a um novo build.
Vamos desativar a verificação automática de atualizações em onResume comentando a chamada checkForUpdate().
MainActivity.kt (link em inglês)
override fun onResume() {
super.onResume()
//checkForupdate()
}
Em vez disso, checkForUpdate() já foi adicionado ao OnClickListener do updatebutton.
Agora, vamos implementar nosso método signIn(), que vai fazer login do usuário se ele estiver desconectado ou fazer logout se ele já estiver conectado.
MainActivity.kt
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
Por fim, vamos implementar o método isTesterSignedIn.
MainActivity.kt
private fun isTesterSignedIn() : Boolean {
return firebaseAppDistribution.isTesterSignedIn
}
Criar e testar a implementação
8. Parabéns!
Você criou a "exibição de alertas no app" em um app usando o SDK do Firebase App Distribution para Android.
O que vimos
- Firebase App Distribution
- SDK do Firebase App Distribution New Alerts para Android
Próximas etapas
Saiba mais
Perguntas?
- Stack Overflow "firebase-app-distribution"
- Canal do Slack da comunidade do Firebase #app-distribution
Informar problemas