Você pode integrar o App Distribution ao processo de compilação do Android usando o plug-in Gradle do App Distribution. O plug-in permite que você especifique seus testadores e notas de versão no arquivo build.gradle
de seu aplicativo, permitindo que você configure distribuições para diferentes tipos de compilação e variantes de seu aplicativo.
Este guia descreve como distribuir Android App Bundles (AABs) para testadores usando o plug-in App Distribution Gradle.
O App Distribution se integra ao serviço interno de compartilhamento de aplicativos do Google Play para processar os AABs que você carrega e veicular APKs otimizados para as configurações do dispositivo de seus testadores. A distribuição de AABs permite fazer o seguinte:
Execute APKs otimizados (servidos pelo Google Play) otimizados para os dispositivos de seus testadores.
Descubra e depure problemas específicos do dispositivo.
Teste os recursos do pacote de apps, como o Play Feature Delivery e o Play Asset Delivery .
Reduza o tamanho dos downloads para seus testadores.
Permissões necessárias
Para fazer upload de AABs para o App Distribution, você deve vincular seu aplicativo Firebase a um aplicativo no Google Play . Você deve ter o nível de acesso necessário para executar essas ações.
Se você não tiver o acesso necessário ao Firebase, poderá solicitar a um proprietário de projeto do Firebase que atribua a você a função aplicável por meio das configurações de IAM do console do Firebase . Se você tiver dúvidas sobre como acessar seu projeto do Firebase, incluindo encontrar ou atribuir um proprietário, consulte as perguntas frequentes sobre "Permissões e acesso a projetos do Firebase" .
A tabela a seguir se aplica à vinculação de um aplicativo Firebase a um aplicativo no Google Play, bem como ao upload de AABs.
Ação no console do Firebase | Permissão de IAM necessária | Funções do IAM que incluem as permissões necessárias por padrão | Função(ões) adicional(is) necessária(s) |
---|---|---|---|
Vincule um aplicativo Firebase a um aplicativo no Google Play | firebase.playLinks.update | Uma das seguintes funções: | Acesso a uma conta de desenvolvedor do Google Play como administrador |
Carregar AABs para distribuição de aplicativos | firebaseappdistro.releases.update | Uma das seguintes funções: | –– |
Antes de você começar
Se ainda não o fez, adicione o Firebase ao seu projeto Android . Ao final deste fluxo de trabalho, você terá um aplicativo Firebase para Android em seu projeto Firebase.
Se você não estiver usando nenhum outro produto Firebase, basta criar um projeto e registrar seu aplicativo. Se você decidir usar produtos adicionais, conclua todas as etapas em Adicionar Firebase ao seu projeto Android .
Para criar um link do Firebase para o Google Play e fazer upload de AABs, certifique-se de que seu aplicativo atenda aos seguintes requisitos:
O aplicativo no Google Play e o aplicativo Firebase para Android são registrados usando o mesmo nome de pacote.
O aplicativo no Google Play é configurado no painel do aplicativo e distribuído para uma das faixas do Google Play (teste interno, teste fechado, teste aberto ou produção).
A análise do aplicativo no Google Play está concluída e o aplicativo foi publicado. Seu aplicativo será publicado se a coluna Status do aplicativo exibir um dos seguintes status: teste interno (não teste interno de rascunho), teste fechado, teste aberto ou produção.
Vincule seu aplicativo Firebase para Android à sua conta de desenvolvedor do Google Play:
No console do Firebase, acesse suas
projeto e selecione a guia Integrações .No cartão do Google Play , clique em Link .
Se você já tiver links para o Google Play, clique em Gerenciar .Siga as instruções na tela para habilitar a integração do App Distribution e selecione quais Firebase Android Apps vincular ao Google Play.
Saiba mais sobre como vincular ao Google Play .
Etapa 1. Configure seu projeto Android
Em seu arquivo Gradle de nível raiz (nível de projeto) (
ou<project>/build.gradle
), adicione o plug-in App Distribution Gradle como uma dependência buildscript:<project>/build.gradle.kts Groovy
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath 'com.android.tools.build:gradle:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.2.0' } }
KotlinGenericName
buildscript { repositories { // Make sure that you have the following two repositories google() // Google's Maven repository mavenCentral() // Maven Central repository } dependencies { ... classpath("com.android.tools.build:gradle:7.2.0") // Make sure that you have the Google services Gradle plugin dependency classpath("com.google.gms:google-services:4.3.15") // Add the dependency for the App Distribution Gradle plugin classpath("com.google.firebase:firebase-appdistribution-gradle:3.2.0") } }
No arquivo Gradle do módulo (nível do aplicativo) (geralmente
ou<project>/<app-module>/build.gradle
), adicione o plug-in Gradle do App Distribution:<project>/<app-module>/build.gradle.kts 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' }
KotlinGenericName
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ê estiver atrás de um proxy ou firewall corporativo, adicione a seguinte propriedade de sistema Java que permite que o App Distribution carregue suas distribuições no Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
Etapa 2. Autenticar com o Firebase
Antes de poder usar o plug-in do Gradle, primeiro você deve se autenticar com seu projeto do Firebase de uma das seguintes maneiras. Por padrão, o plug-in Gradle procura credenciais da Firebase CLI se nenhum outro método de autenticação for usado.
A autenticação com uma conta de serviço permite que você use o plug-in de forma flexível com seu sistema de integração contínua (CI). Há duas maneiras de fornecer credenciais de conta de serviço:
- Passe o arquivo de chave da conta de serviço para
build.gradle
. Você pode achar esse método conveniente se já tiver o arquivo de chave da conta de serviço em seu ambiente de compilação. - Defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
para apontar para o arquivo de chave da conta de serviço. Você pode preferir este método se já tiver o Application Default Credentials (ADC) configurado para outro serviço do Google (por exemplo, Google Cloud).
Para autenticar usando credenciais de conta de serviço:
- No Console do Google Cloud, selecione seu projeto e crie uma nova conta de serviço.
- Adicione a função de administrador do Firebase App Distribution .
- Crie uma chave json privada e mova a chave para um local acessível ao seu ambiente de construção. Certifique-se de manter este arquivo em algum lugar seguro , pois ele concede acesso de administrador ao App Distribution em seu projeto do Firebase.
- Ignore esta etapa se você criou seu aplicativo após 20 de setembro de 2019: no console de APIs do Google, ative a API Firebase App Distribution. Quando solicitado, selecione o projeto com o mesmo nome do seu projeto do Firebase.
Forneça ou localize as credenciais da sua conta de serviço:
- Para passar ao Gradle a chave da sua conta de serviço, em seu arquivo
build.gradle
, defina a propriedadeserviceCredentialsFile
como o arquivo JSON da chave privada. Para localizar suas credenciais com ADC, defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
para o caminho do arquivo JSON de chave privada. Por exemplo:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
Para obter mais informações sobre autenticação com ADC, leia Fornecendo credenciais para seu aplicativo.
- Para passar ao Gradle a chave da sua conta de serviço, em seu arquivo
Consulte Fazer login com a Firebase CLI para obter instruções sobre como autenticar seu projeto.
Etapa 3. Configurar suas propriedades de distribuição
No arquivo Gradle do módulo (nível do aplicativo) (geralmente
ou
), configure o App Distribution adicionando pelo menos uma seção firebaseAppDistribution
.
Por exemplo, para distribuir a compilação de release
para testadores, siga estas instruções::
Groovy
android { // ... buildTypes { release { firebaseAppDistribution { artifactType="AAB" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
KotlinGenericName
import com.google.firebase.appdistribution.gradle.firebaseAppDistribution android { // ... buildTypes { release { firebaseAppDistribution { artifactType = "AAB" releaseNotesFile = "/path/to/releasenotes.txt" testers = "ali@example.com, bri@example.com, cal@example.com" } } } // ... }
Você pode configurar o App Distribution para tipos de construção e variações de produto .
Por exemplo, para distribuir compilações de debug
e release
em versões de produto "demo" e "completas", siga estas instruções:
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" } } } // ... }
KotlinGenericName
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" } } } // ... }
Use os seguintes parâmetros para configurar a distribuição:
Parâmetros de compilação de distribuição de aplicativo | |
---|---|
appId | O ID do aplicativo Firebase do seu aplicativo. Necessário apenas se você não tiver o plug-in Gradle do Google Services instalado. Você pode encontrar o ID do aplicativo 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 autenticação de conta de serviço. |
artifactType | Especifica o tipo de arquivo do seu aplicativo. Pode ser definido como |
artifactPath | Caminho absoluto para o arquivo APK ou AAB que você deseja enviar. |
releaseNotes ou releaseNotesFile | Notas de versão para esta compilação. Você pode especificar as notas de versão 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ê deseja distribuir as compilações. Você pode 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" Ou você pode especificar o caminho para um arquivo contendo uma lista separada por vírgulas de endereços de e-mail: testersFile="/path/to/testers.txt" |
groups ou groupsFile | Os grupos de testadores para os quais você deseja distribuir builds (consulte Gerenciar testadores ). Os grupos são especificados usando Você pode especificar os grupos como uma lista separada por vírgulas de aliases de grupo: groups="qa-team, android-testers" Ou você pode especificar o caminho para um arquivo contendo uma lista separada por vírgulas de aliases de grupo: groupsFile="/path/to/tester-groups.txt" |
stacktrace | Imprime o stacktrace para exceções do usuário. Isso é útil ao depurar problemas. |
Etapa 4. Distribua seu aplicativo para testadores
Por fim, para empacotar seu aplicativo de teste e convidar testadores, crie os destinos
BUILD-VARIANT
eappDistributionUpload BUILD-VARIANT
com o wrapper Gradle do seu projeto, em que BUILD-VARIANT é o tipo de produto opcional e o tipo de compilação que você configurou na etapa anterior. Para obter mais informações sobre variações de produtos, consulte Configurar variantes de compilação .Por exemplo, para distribuir seu aplicativo usando a variante de compilação de
release
, execute o seguinte comando:./gradlew bundleRelease appDistributionUploadRelease
Ou, se você se autenticou com sua Conta do Google e não forneceu credenciais em seu arquivo de compilação do Gradle, inclua a variável
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew bundleRelease appDistributionUploadRelease
Você também pode substituir os valores definidos em seu arquivo
build.gradle
passando argumentos de linha de comando na forma de--<property-name>=<property-value>
. Por exemplo:Para carregar uma compilação de depuração para o App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="AAB"
Para convidar testadores adicionais ou remover testadores existentes do seu projeto Firebase:
./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 for adicionado ao seu projeto do Firebase, você poderá adicioná-lo a versões individuais. Os testadores que forem removidos não terão mais acesso aos lançamentos em seu projeto, mas ainda poderão manter o acesso aos seus lançamentos por um período de tempo.
Você também pode 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 Firebase.serviceCredentialsFile
: o caminho para o arquivo de credenciais de serviço do Google. Este é o mesmo argumento usado pela ação de upload.
O plug-in Gradle gera os links a seguir após o upload da versão. Esses links ajudam você a gerenciar binários e garantir que os testadores e outros desenvolvedores tenham a versão correta:
-
firebase_console_uri
- Um link para o console do Firebase exibindo uma única versão. Você pode compartilhar este link com outros desenvolvedores em sua organização. -
testing_uri
- Um link para a versão na experiência do testador (aplicativo nativo do Android) que permite aos testadores visualizar as notas da versão e instalar o aplicativo em seus dispositivos. O testador precisa acessar a versão para usar o link. -
binary_download_uri
- Um link assinado que baixa e instala diretamente o binário do aplicativo (arquivo APK ou AAB). O link expira após uma hora.
Depois de distribuir seu build, ele fica disponível no painel App Distribution do Firebase console por 150 dias (cinco meses). Quando a compilação estiver faltando 30 dias para expirar, um aviso de expiração aparecerá no console e na lista de compilações do testador em seu dispositivo de teste.
Os testadores que não foram convidados para testar o aplicativo recebem convites por e-mail para começar, e os testadores existentes recebem notificações por e-mail de que uma nova compilação está pronta para teste (leia o guia de configuração do testador para obter instruções sobre como instalar o aplicativo de teste). Você pode monitorar o status de cada testador - se eles aceitaram o convite e se baixaram o aplicativo - no Firebase console.
Os testadores têm 30 dias para aceitar um convite para testar o aplicativo antes que ele expire. Quando faltam 5 dias para um convite expirar, um aviso de expiração aparece no console do Firebase ao lado do testador em uma versão. Um convite pode ser renovado reenviando-o usando o menu suspenso na linha do testador.
Próximos passos
Visite o codelab do Android App Bundle para saber como distribuir lançamentos de pacotes de apps passo a passo.
Conheça as práticas recomendadas para distribuição de aplicativos Android para testadores de controle de qualidade usando CI/CD .