Distribuir apps Android para testadores usando o Gradle

É 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 build.gradle do seu aplicativo. Assim, você pode configurar distribuições para diferentes tipos de builds e variantes do seu aplicativo.

Antes de começar

Adicione o Firebase ao seu projeto para Android, caso ainda não tenha feito isso.

Caso não use outros produtos do Firebase, basta criar um projeto e registrar seu aplicativo. No entanto, caso decida usar produtos adicionais no futuro, não esqueça de concluir todas as etapas na página vinculada acima.

Etapa 1. Configurar seu projeto do Android

  1. No arquivo do Gradle no nível do projeto, que geralmente é android/build.gradle, adicione o plug-in do App Distribution como uma dependência do buildscript:

    buildscript {
        repositories {
            // Check that you have Google's Maven repository (if not, add it).
            google()
            jcenter()
        }
        dependencies {
            // Add the App Distribution Gradle plugin
            classpath 'com.google.firebase:firebase-appdistribution-gradle:2.0.1'
        }
    }
    
  2. No arquivo do Gradle no nível do aplicativo, que geralmente é android/app/build.gradle, inclua o plug-in do App Distribution abaixo do plug-in do Android:

    apply plugin: 'com.android.application'
    // ...
    
    // Apply the App Distribution Gradle plugin
    apply plugin: 'com.google.firebase.appdistribution'
    // ...
    
  3. 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 com o Firebase

Antes de usar o plug-in do Fastlane, primeiro faça a autenticação com seu projeto do Firebase. Existem três maneiras de fazer isso:

Etapa 3. Configurar suas propriedades de distribuição

  1. No seu arquivo app/build.gradle, configure o App Distribution adicionando pelo menos uma seção firebaseAppDistribution. É possível configurar o App Distribution para tipos de builds e variações de produtos. Por exemplo, para distribuir o build release aos testadores:

    android {
    
        // ...
    
        buildTypes {
            release {
                firebaseAppDistribution {
                    releaseNotesFile="/path/to/releasenotes.txt"
                    testers="ali@example.com, bri@example.com, cal@example.com"
                }
            }
        }
    
        // ...
    }
    

    E para distribuir os builds debug e release nas variações de produtos "demonstração" e "completa":

    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 Gradle dos Serviços do Google. Você encontra o ID do aplicativo no arquivo google-services.json ou no Console do Firebase na página Configurações gerais. O valor no arquivo build.gradle modifica o valor resultante do plug-in google-services.


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.

apkPath

Caminho absoluto ou relativo para o arquivo APK que você quer fazer upload. Se não for especificado, o Gradle determinará o local do arquivo usando o diretório de saída do APK.

releaseNotes ou releaseNotesFile

Notas de lançamento 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 aliases de grupo, que podem ser encontrados na guia Testadores no console do Firebase App Distribution.

É 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 aplicativo para os testadores

Por último, para empacotar o aplicativo de teste e convidar testadores, crie os destinos assembleBUILD-VARIANT e appDistributionUploadBUILD-VARIANT com o wrapper do Gradle do projeto, em que BUILD-VARIANT é a variação de produto opcional e o tipo de build 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 aplicativo 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

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.