Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Distribuir aplicativos Android para testadores usando Gradle

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Você pode integrar o App Distribution ao seu processo de compilação do Android usando o plug-in App Distribution Gradle. O plug-in permite que você especifique seus testadores e notas de lançamento no arquivo build.gradle do seu aplicativo, permitindo configurar distribuições para diferentes tipos de compilação e variantes do 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ê envia e veicular APKs otimizados para as configurações de dispositivo dos testadores. A distribuição de AABs permite que você faça 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 aplicativos, 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, peça 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 do Firebase a um aplicativo no Google Play, bem como ao upload de AABs.

Ação no console do Firebase Permissão do IAM necessária Funções do IAM que incluem as permissões necessárias por padrão Funções adicionais necessárias
Vincular um aplicativo do Firebase a um aplicativo no Google Play firebase.playLinks.update Um dos seguintes papéis: Acesso a uma conta de desenvolvedor do Google Play como administrador
Carregar AABs para o App Distribution firebaseappdistro.releases.update Um dos seguintes papéis: ––

Antes de você começar

  1. Se ainda não o fez, adicione o Firebase ao seu projeto Android . Ao final deste fluxo de trabalho, você terá um Firebase Android App em seu projeto Firebase.

    Se você não estiver usando nenhum outro produto do Firebase, precisará apenas criar um projeto e registrar seu aplicativo. Se você decidir usar produtos adicionais, conclua todas as etapas em Adicionar o Firebase ao seu projeto Android .

  2. Para criar um link do Firebase para o Google Play e fazer upload de AABs, verifique se seu aplicativo atende 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 foi 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.

  3. Vincule seu aplicativo Firebase para Android à sua conta de desenvolvedor do Google Play:

    1. No console do Firebase, acesse suas projeto e selecione a guia Integrações .

    2. No cartão do Google Play , clique em Link .
      Se você já tiver links para o Google Play, clique em Gerenciar .

    3. Siga as instruções na tela para ativar a integração do App Distribution e selecione quais aplicativos Android do Firebase devem ser vinculados ao Google Play.

    Saiba mais sobre como vincular ao Google Play .

Etapa 1. Configure seu projeto Android

  1. Em seu arquivo Gradle de nível raiz (nível de projeto) ( <project>/build.gradle ou <project>/build.gradle.kts ), adicione o plug-in Gradle do App Distribution como uma dependência de buildscript:

    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.14'
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath 'com.google.firebase:firebase-appdistribution-gradle:3.1.1'
      }
    }
    

    Kotlin

    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.14")
    
          // Add the dependency for the App Distribution Gradle plugin
          classpath("com.google.firebase:firebase-appdistribution-gradle:3.1.1")
      }
    }
    
  2. No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ou <project>/<app-module>/build.gradle.kts ), adicione o plug-in Gradle do App Distribution:

    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'
    }
    

    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")
    }
    
  3. Se você estiver protegido por um proxy ou firewall corporativo, adicione a seguinte propriedade de sistema Java que permite que o App Distribution faça upload de 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 Gradle, você deve primeiro se autenticar com seu projeto do Firebase de uma das maneiras a seguir. Por padrão, o plug-in do Gradle procura credenciais da Firebase CLI se nenhum outro método de autenticação for usado.

Etapa 3. Configure suas propriedades de distribuição

No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ou <project>/<app-module>/build.gradle.kts ), 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"
          }
      }
  }

  // ...
}

Kotlin

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 compilação e variações de produto .

Por exemplo, para distribuir compilações de debug e release nos tipos de produto "demo" e "completo", 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"
          }
      }
  }

  // ...
}

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"
          }
      }
  }

  // ...
}

Use os seguintes parâmetros para configurar a distribuição:

Parâmetros de compilação de distribuição de aplicativos
appId

O ID do aplicativo do Firebase do seu aplicativo. Necessário apenas se você não tiver o plug-in Gradle do Google Services instalado. Você pode encontrar o App ID no arquivo google-services.json ou no Firebase console na página General Settings . O valor em seu arquivo build.gradle substitui a saída de valor do plug-in google-services .

appId="1:1234567890:android:321abc456def7890"
serviceCredentialsFile

O caminho para o arquivo JSON da chave privada da sua conta de serviço. Necessário apenas se você usar a autenticação de conta de serviço.

artifactType

Especifica o tipo de arquivo do seu aplicativo. Pode ser definido como "AAB" ou "APK" .

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 or testersFile

Os endereços de e-mail dos testadores para os quais você deseja distribuir compilações.

Você pode especificar os testadores como uma lista de endereços de e-mail separados por vírgulas:

testers="ali@example.com, bri@example.com, cal@example.com"

Ou você pode especificar o caminho para um arquivo que contém 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ê deseja distribuir compilações (consulte Gerenciar testadores ). Os grupos são especificados usando aliases de grupo , que você encontra na guia Testers no console do Firebase App Distribution.

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 que contém 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. Distribua seu aplicativo para testadores

  1. Por fim, para empacotar seu aplicativo de teste e convidar testadores, construa os destinos BUILD-VARIANT e appDistributionUpload BUILD-VARIANT com o wrapper Gradle do seu projeto, onde BUILD-VARIANT é o tipo de compilação e o tipo de produto opcional 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 no 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
    
  2. 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 fazer upload de 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 do 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 removidos não terão mais acesso às versões do seu projeto, mas ainda poderão manter o acesso às suas versões 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 e appDistributionRemoveTesters também aceitam os seguintes argumentos:

    • projectNumber : o número do seu projeto do Firebase.

    • serviceCredentialsFile : o caminho para o arquivo de credenciais de serviço do Google. Este é o mesmo argumento usado pela ação de upload.

Depois de distribuir sua compilação, ela fica disponível no painel do App Distribution do Firebase console por 150 dias (cinco meses). Quando faltam 30 dias para a compilação expirar, um aviso de expiração é exibido no console e na lista de compilações do testador no 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 versã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 fizeram o download do aplicativo - no Firebase console.

Os testadores têm 30 dias para aceitar um convite para testar o aplicativo antes que ele expire. Quando faltam cinco dias para a expiração de um convite, um aviso de expiração é exibido 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