É possível integrar o App Distribution ao seu processo de compilação do Android usando o plug-in do App Distribution do Gradle. O plug-in permite que você especifique testadores e notas de lançamento no arquivo do gradle do seu aplicativo. Assim, você pode configurar distribuições para diferentes tipos de builds e variantes do seu aplicativo.
Neste guia, descrevemos como distribuir APKs para testadores usando o plug-in do App Distribution do Gradle.
Antes de começar
Adicione o Firebase ao seu projeto para Android, caso ainda não tenha feito isso.
Caso você não use outros produtos do Firebase, basta criar um projeto e registrar seu app. Se quiser usar outros produtos, conclua todas as etapas na página vinculada acima.
Etapa 1. Configurar seu projeto do Android
No arquivo Gradle no nível raiz do projeto (
<project>/build.gradle.kts
ou<project>/build.gradle
), adicione o plug-in do Gradle para App Distribution como uma dependência:Kotlin
plugins { // ... id("com.android.application") version "7.2.0" apply false // Make sure that you have the Google services Gradle plugin dependency id("com.google.gms.google-services") version "4.3.15" apply false // Add the dependency for the App Distribution Gradle plugin id("com.google.firebase.appdistribution") version "4.0.0" apply false }
Groovy
plugins { // ... id 'com.android.application' version '7.2.0' apply false // Make sure that you have the Google services Gradle plugin dependency id 'com.google.gms.google-services' version '4.3.15' apply false // Add the dependency for the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' version '4.0.0' apply false }
No arquivo Gradle do módulo (nível do app) (geralmente
<project>/<app-module>/build.gradle.kts
ou<project>/<app-module>/build.gradle
), adicione o plug-in do Gradle para App Distribution:Kotlin
plugins { id("com.android.application") // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the App Distribution Gradle plugin id("com.google.firebase.appdistribution") }
Groovy
plugins { id 'com.android.application' // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the App Distribution Gradle plugin id 'com.google.firebase.appdistribution' }
Se você tiver um proxy ou firewall corporativo ativado, adicione a seguinte propriedade do sistema Java que permite que o App Distribution faça upload das suas distribuições para o Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Etapa 2. Autenticar no Firebase
Antes de usar o plug-in do Gradle, primeiro faça a autenticação com seu projeto do Firebase de uma das seguintes maneiras. Por padrão, o plug-in do Gradle procurará credenciais da CLI do Firebase se nenhum outro método de autenticação for usado.
Etapa 3. Configurar suas propriedades de distribuição
No seu arquivo do Gradle módulo (nível do app) (geralmente
<project>/<app-module>/build.gradle.kts
ou <project>/<app-module>/build.gradle
), configure o App Distribution adicionando pelo menos um firebaseAppDistribution
.
Por exemplo, para distribuir o build release
para testadores, siga estas
instruções:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("release") { firebaseAppDistribution { artifactType = "APK" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
É possível configurar o App Distribution para tipos de builds e variações de produtos.
Por exemplo, para distribuir os builds debug
e release
nas variações de produto "demonstração" e "completa", siga estas instruções:
Kotlin
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { getByName("debug") {...} getByName("release") {...} } flavorDimensions += "version" productFlavors { create("demo") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for demo version" testers = "demo@testers.com" } } create("full") { dimension = "version" firebaseAppDistribution { releaseNotes = "Release notes for full version" testers = "full@testers.com" } } } // ... }
Groovy
android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
Use os seguintes parâmetros para configurar a distribuição:
Parâmetros do build do App Distribution | |
---|---|
appId
|
ID do app do Firebase do seu aplicativo. Obrigatório apenas se você não tiver
instalado o plug-in do Gradle para os Serviços do Google. Você encontra o ID do app no
arquivo appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile
|
O caminho para o arquivo JSON da chave privada da conta de serviço. Obrigatório apenas se você usar a autenticação da conta de serviço. |
artifactType
|
Especifica o tipo de arquivo do app. Pode ser definido como
|
artifactPath
|
Caminho absoluto para o arquivo AAB ou APK que você quer enviar. |
releaseNotes ou releaseNotesFile |
Notas da versão para este build. É possível especificar as notas de lançamento diretamente ou o caminho para um arquivo de texto simples. |
testers ou testersFile |
Os endereços de e-mail dos testadores para os quais você quer distribuir builds. É possível especificar os testadores como uma lista separada por vírgulas de endereços de e-mail: testers="ali@example.com, bri@example.com, cal@example.com" Como opção, é possível especificar o caminho para um arquivo que contenha uma lista de endereços de e-mail separados por vírgulas: testersFile="/path/to/testers.txt" |
groups ou groupsFile |
Os grupos de testadores para os quais você quer distribuir builds (consulte
Gerenciar testadores).
Os grupos são especificados usando É possível especificar os grupos como uma lista separada por vírgulas de aliases de grupo: groups="qa-team, android-testers" Também é possível especificar o caminho para um arquivo que contenha uma lista separada por vírgulas de aliases de grupo: groupsFile="/path/to/tester-groups.txt" |
stacktrace
|
Imprime o rastreamento de pilha para exceções do usuário. Isso é útil ao depurar problemas. |
Etapa 4. Distribuir seu app para os testadores
Por último, para empacotar o app de teste e convidar testadores, crie os destinos
BUILD-VARIANT
eappDistributionUploadBUILD-VARIANT
com o wrapper do Gradle do projeto, em que BUILD-VARIANT é a variação de produto opcional e o tipo de compilação que você configurou na etapa anterior. Para mais informações sobre as variações de produtos, consulte Configurar variantes de build.Por exemplo, para distribuir seu app usando a variante de build
release
, execute o seguinte comando:./gradlew assembleRelease appDistributionUploadRelease
Ou, se você autenticou com sua Conta do Google e não forneceu credenciais em seu arquivo de build do Gradle, inclua a variável
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
Também é possível substituir os valores definidos no arquivo
build.gradle
transmitindo argumentos de linha de comando no formato--<property-name>=<property-value>
. Exemplo:Para fazer upload de um build de depuração para o App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
Para convidar mais testadores ou remover os que já estão no projeto do Firebase, faça o seguinte:
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
Depois que um testador é adicionado ao seu projeto do Firebase, ele pode ser adicionado a versões individuais. Os testadores removidos não terão mais acesso às versões do seu projeto, mas poderão manter o acesso às versões por um período.
Também é possível especificar testadores usando
--file="/path/to/testers.txt"
em vez de--emails
.As tarefas
appDistributionAddTesters
eappDistributionRemoveTesters
também aceitam os seguintes argumentos:projectNumber
: o número do seu projeto do Firebase.serviceCredentialsFile
: o caminho para o arquivo de credenciais do serviço do Google. É o mesmo argumento usado na ação de upload.
O plug-in do Gradle gera os seguintes links após o upload da versão. Esses links ajudam a gerenciar binários e garantir que os testadores e outros desenvolvedores tenham a versão certa:
firebase_console_uri
: um link para o Console do Firebase que exibe uma única versão. Você pode compartilhar esse link com outros desenvolvedores na sua organização.testing_uri
: um link para a versão na experiência do testador (app nativo do Android) que permite que os testadores vejam as notas da versão e instalem o app no dispositivo. O testador precisa acessar a versão para usar o link.binary_download_uri
: um link assinado que faz o download e instala diretamente o binário do app (arquivo APK ou AAB). O link expira depois de uma hora.
Depois de distribuir o build, ele fica disponível no painel App Distribution do Console do Firebase por 150 dias (cinco meses). Quando faltarem 30 dias para o vencimento do build, o aviso de expiração aparecerá no console e na lista de builds do testador no dispositivo de teste.
Os testadores que não foram convidados para testar o app recebem convites por e-mail para dar os primeiros passos, e os testadores atuais recebem notificações por e-mail informando que um novo build está pronto para ser testado (leia o guia de configuração do testador para ver instruções sobre como instalar o app de teste). É possível monitorar o status de cada testador, por exemplo, se ele aceitou o convite e se fez o download do aplicativo no Console do Firebase.
Os testadores têm 30 dias para aceitar um convite de teste do app antes que ele expire. Quando faltarem cinco dias para o vencimento do convite, um aviso de expiração vai aparecer no Console do Firebase ao lado do testador em uma versão. Para renovar um convite, reenvie-o usando o menu suspenso na linha do testador.
Próximas etapas
Implemente o feedback no app para que os testadores possam enviar feedback sobre seu app, incluindo capturas de tela.
Saiba como mostrar alertas no app aos testadores quando novos builds do app estiverem disponíveis para instalar.
Acesse o codelab do Android App Bundle para saber como distribuir as versões do pacote de apps etapa por etapa.
Conheça as práticas recomendadas para distribuir apps Android aos testadores de controle de qualidade usando CI/CD.