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 seus testadores façam login e recebam atualizações. Depois, você vai enviar uma nova versão ao App Distribution e acionar um novo alerta de build diretamente 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 App Distribution para Android 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 mais recente e o Google Play Services 9.8 ou mais recente ou um emulador com o Google Play Services 9.8 ou mais recente.
- 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 seu 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. Usar "com.google.firebase.appdistributioncodelab" como nome do pacote.
Adicionar o arquivo google-services.json ao app
Depois de adicionar o nome do pacote e selecionar "Register", siga estas etapas para adicionar 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 de fazer o download do arquivo, você pode pular as próximas etapas mostradas no console (elas já foram feitas para você no projeto build-android-start).
Atualize o ID do aplicativo para que ele corresponda ao seu app do Firebase
- No menu à esquerda (guia Project), verifique se você está na pasta "Android" Acesse e localize os "Gradle Scripts". e abra o arquivo 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 seu projeto com arquivos do Gradle
Para garantir que todas as dependências estejam disponíveis para o app, sincronize o 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 para os testadores quando novos builds estiverem disponíveis para instalação. Para isso, ative a API Firebase App Testers para seu "Codelab do Firebase" no console do Google Cloud. Você precisa fazer login com a mesma conta e selecionar o projeto correto no menu suspenso na parte superior.
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.
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.
A ativação de 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 até que 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
.
É possível chamar updateIfNewReleaseAvailable()
a qualquer momento no app. Por exemplo, você pode chamar updateIfNewReleaseAvailable()
durante o método onResume()
da MainActivity:
Abra MainActivity.kt e crie o método onResume()
desta forma:
MainActivity.kt (link em inglês)
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 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 do 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 como criar 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 ver 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ê para testar o app. Agora 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 Android de teste, 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
Ao navegar até o app do codelab AppDistribution, é possível notar 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 os 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 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.
Alertas de build de teste
- Feche o app se ele estiver aberto.
- Reinicie o app.
- Quando o app for reiniciado, você vai receber um alerta "Nova versão disponível".
- Para receber a versão mais recente, clique em Atualizar.
- Se solicitado, escolha a opção para ativar 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 que ele corresponda melhor à aparência do seu 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ê poderá 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 fará login do usuário se ele estiver desconectado, ou desconectará o usuário se ele já estiver conectado.
MainActivity.kt (link em inglês)
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
Por fim, vamos implementar o método isTesterSignedIn.
MainActivity.kt (link em inglês)
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 Android para novos alertas do Firebase App Distribution
Próximas etapas
Saiba mais
Perguntas?
- Stack Overflow "firebase-app-distribution"
- Canal do Slack da comunidade do Firebase #app-distribution
Informar problemas