Este documento descreve como distribuir compilações de APK para testadores usando fastlane , uma plataforma de código aberto que automatiza a criação e o lançamento de aplicativos iOS e Android. Este documento segue instruções definidas em um Fastfile
. Depois de configurar o fastlane e seu Fastfile
, você poderá integrar o App Distribution à sua configuração do fastlane.
Antes de você começar
Adicione o Firebase ao seu projeto Android , caso ainda não o tenha feito.
Se você não estiver usando nenhum outro produto Firebase, basta criar um projeto e registrar seu aplicativo. No entanto, se você decidir usar produtos adicionais no futuro, certifique-se de concluir todas as etapas da página com link acima.
Passo 1. Configurar fastlane
Para adicionar o App Distribution à sua configuração fastlane, execute o seguinte comando na raiz do seu projeto Android:
fastlane add_plugin firebase_app_distribution
Se o comando solicitar uma opção, selecione
Option 3: RubyGems.org
.
Etapa 2. Autenticar com Firebase
Antes de usar o plug-in fastlane, você deve primeiro autenticar seu projeto do Firebase de uma das seguintes maneiras. Por padrão, o plug-in fastlane procura credenciais na CLI do Firebase 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 maneira 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 sua conta de serviço para a ação
firebase_app_distribution
. Talvez você ache 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 sua conta de serviço. Você pode preferir esse método se já tiver Application Default Credentials (ADC) configuradas para outro serviço do Google (por exemplo, Google Cloud).
- 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 para um local acessível ao seu ambiente de construção. Certifique-se de manter esse arquivo em um local seguro , pois ele concede acesso de administrador ao App Distribution em seu projeto do Firebase.
- Pule esta etapa se você criou seu aplicativo depois de 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 a chave da sua conta de serviço para a ação
firebase_app_distribution
da sua pista, defina o parâmetroservice_credentials_file
com o caminho para o arquivo JSON da sua chave privada Para localizar suas credenciais com ADC, defina a variável de ambiente
GOOGLE_APPLICATION_CREDENTIALS
como o caminho do arquivo JSON da 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 a chave da sua conta de serviço para a ação
Consulte Faça login com a CLI do Firebase para obter instruções sobre como autenticar seu projeto.
Etapa 3. Configure seu Fastfile e distribua seu aplicativo
- Em uma via
./fastlane/Fastfile
, adicione um blocofirebase_app_distribution
. Use os seguintes parâmetros para configurar a distribuição:Parâmetros firebase_app_distribution app
Obrigatório : o Firebase App ID do seu aplicativo. Você pode encontrar o ID do aplicativo no console do Firebase, na página Configurações gerais .
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Um token de atualização impresso quando você autentica seu ambiente de CI com a CLI do Firebase (leia Usar a CLI com sistemas de CI para obter mais informações).
service_credentials_file
O caminho para o arquivo json da sua conta de serviço do Google. Veja acima como autenticar usando credenciais de conta de serviço .
android_artifact_type
Especifica o tipo de arquivo do Android (APK ou AAB).
android_artifact_path
Substitui
apk_path
(obsoleto). Caminho absoluto para o arquivo APK ou AAB que você deseja enviar. Se não for especificado, fastlane determinará a localização do arquivo a partir da pista em que o arquivo foi gerado.release_notes
release_notes_file
Notas de versão para esta compilação.
Você pode especificar as notas de versão diretamente:
release_notes: "Text of release notes"
Ou especifique o caminho para um arquivo de texto simples:
release_notes_file: "/path/to/release-notes.txt"
testers
testers_file
Os endereços de e-mail dos testadores que você deseja convidar.
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 de texto simples contendo uma lista de endereços de e-mail separados por vírgula:
testers_file: "/path/to/testers.txt"
groups
groups_file
Os grupos de testadores que você deseja convidar (consulte Gerenciar testadores ). Os grupos são especificados usando
aliases de grupo , que você pode consultar no console do Firebase.Você pode especificar os grupos como uma lista separada por vírgulas:
groups: "qa-team, trusted-testers"
Ou você pode especificar o caminho para um arquivo de texto simples contendo uma lista de nomes de grupos separados por vírgula:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Os seguintes tipos de distribuição fazem parte do recurso Beta do testador automatizado .
Os dispositivos de teste para os quais você deseja distribuir compilações (consulte Testes automatizados ).
Você pode especificar os dispositivos de teste como uma lista de dispositivos de teste separados por ponto e vírgula:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Ou você pode especificar o caminho para um arquivo de texto simples contendo uma lista de dispositivos de teste separados por ponto e vírgula:
test_devices_file: "/path/to/test-devices.txt"
test_username
O nome de usuário para login automático a ser usado durante testes automatizados .
test_password
test_password_file
A senha para login automático a ser utilizada durante testes automatizados .
Ou você pode especificar o caminho para um arquivo de texto simples contendo uma senha:
test_password_file: "/path/to/test-password.txt"
test_username_resource
Nome do recurso para o campo de nome de usuário para login automático a ser usado durante testes automatizados .
test_password_resource
Nome do recurso do campo de senha para login automático a ser utilizado durante testes automatizados .
test_non_blocking
Execute testes automatizados de forma assíncrona. Visite o console do Firebase para ver os resultados dos testes automáticos.
debug
Uma bandeira booleana. Você pode definir isso como
true
para imprimir a saída de depuração detalhada.
platform :android do desc "My awesome app" lane :distribute do build_android_app(...) # build_android_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:android:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Para disponibilizar a compilação aos testadores, execute sua pista:
fastlane <lane>
O valor de retorno da ação é um hash que representa a versão carregada. Este hash também está disponível usando lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
. Para obter mais informações sobre os campos disponíveis neste hash, consulte a documentação da API REST .
O plugin fastlane gera os seguintes links após o upload do lançamento. Esses links ajudam você a gerenciar binários e garantir que os testadores e outros desenvolvedores tenham a versão correta:
- Um link para o console do Firebase exibindo uma única versão. Você pode compartilhar esse link com outros desenvolvedores da sua organização.
- Um link para o lançamento na experiência do testador (aplicativo nativo do Android) que permite aos testadores visualizar as notas de lançamento e instalar o aplicativo em seus dispositivos. O testador precisa de acesso à versão para usar o link.
- 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 ficará disponível no painel App Distribution do Firebase console por 150 dias. Quando a compilação estiver a 30 dias da expiração, 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 anteriormente para testar o aplicativo recebem convites por e-mail para começar. Os testadores existentes recebem notificações por e-mail informando que uma nova compilação está pronta para ser testada. Para saber como instalar o aplicativo de teste, consulte o guia de configuração do testador . Você pode monitorar o status de cada testador para determinar se eles aceitaram o convite e se fizeram o download do aplicativo no Firebase console.
(Opcional) Para incrementar automaticamente seu número de build sempre que criar uma nova versão no App Distribution, você pode usar a ação firebase_app_distribution_get_latest_release
e, por exemplo, o plugin increment_version_code
fastlane . O código a seguir fornece um exemplo de como incrementar automaticamente seu número de compilação:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end
Para saber mais sobre a ação firebase_app_distribution_get_latest_release
, consulte Obtenha informações sobre a versão mais recente do seu aplicativo .
Etapa 4 (opcional). Gerenciando testadores para a distribuição
Você pode adicionar e remover testadores de seu projeto ou grupo usando seu arquivo Fastfile
ou executando ações fastlane diretamente. A execução de ações substitui diretamente os valores definidos em seu Fastfile
.
Depois que um testador for adicionado ao seu projeto do Firebase, você poderá adicioná-lo a versões individuais. Os testadores removidos do seu projeto do Firebase não terão mais acesso às versões do seu projeto, mas poderão manter o acesso às suas versões por um determinado período.
Se você tiver um grande número de testadores, considere usar grupos.
Usar Fastfile
# Use lanes to add or remove testers from a project. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) add testers to this group ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" group_alias: "qa-team" # (Optional) remove testers from this group only ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Execute ações de fastlane
fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"
Você também pode especificar testadores usando --file="/path/to/testers.txt
em vez de --emails
.
As tarefas firebase_app_distribution_add_testers
e firebase_app_distribution_remove_testers
também aceitam os seguintes argumentos:
-
project_name
: o número do seu projeto do Firebase. -
group_alias
(opcional): se especificado, os testadores serão adicionados (ou removidos) do grupo especificado. -
service_credentials_file
: o caminho para seu arquivo de credenciais de serviço do Google. -
firebase_cli_token
: token de autenticação para Firebase CLI.
O service_credentials_file
e o firebase_cli_token
são os mesmos argumentos usados pela ação de upload.
Etapa 5 (opcional). Obtenha informações sobre o lançamento mais recente do seu aplicativo
Você pode usar a ação firebase_app_distribution_get_latest_release
para buscar informações sobre a versão mais recente do seu aplicativo no App Distribution, incluindo informações de versão do aplicativo, notas de versão e horário de criação. Os casos de uso incluem o aumento automático da versão e a transferência das notas de versão da versão anterior.
O valor de retorno da ação é um hash que representa a versão mais recente. Este hash também está disponível usando lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
. Para obter mais informações sobre os campos disponíveis neste hash, consulte a documentação da API REST .
Parâmetros
Parâmetros firebase_app_distribution_get_latest_release | |
---|---|
app | Obrigatório : o Firebase App ID do seu aplicativo. Você pode encontrar o ID do aplicativo no console do Firebase, na página Configurações gerais . app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | Um token de atualização impresso quando você autentica seu ambiente de CI com a CLI do Firebase (leia Usar a CLI com sistemas de CI para obter mais informações). |
service_credentials_file | O caminho para o arquivo json da sua conta de serviço do Google. Veja acima como autenticar usando credenciais de conta de serviço . |
debug | Uma bandeira booleana. Você pode definir isso como |
Próximos passos
Implemente feedback no aplicativo para facilitar aos testadores o envio de feedback sobre seu aplicativo (incluindo capturas de tela).
Aprenda como exibir alertas no aplicativo para seus testadores quando novas versões do seu aplicativo estiverem disponíveis para instalação.
Aprenda as práticas recomendadas para distribuir aplicativos Android para testadores de controle de qualidade usando CI/CD .