Este documento descreve como distribuir versõ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 as instruções definidas em um Fastfile
. Depois de configurar o fastlane e seu Fastfile
, você pode integrar o App Distribution com sua configuração do fastlane.
Antes de você começar
Se ainda não o fez, adicione o Firebase ao seu projeto Android .
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 na página vinculada acima.
Passo 1. Configure o 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 o Firebase
Antes de poder usar o plug-in fastlane, você deve primeiro autenticar com seu projeto Firebase de uma das seguintes maneiras. Por padrão, o plug-in fastlane 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 a ação
firebase_app_distribution
. Você pode achar esse método conveniente se já tiver o arquivo de chave da conta de serviço em seu ambiente de construçã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).
- 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 a chave da sua conta de serviço para a ação
firebase_app_distribution
da sua faixa, defina o parâmetroservice_credentials_file
com o caminho para 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 a chave da sua conta de serviço para a ação
Consulte Fazer login com a Firebase CLI para obter instruções sobre como autenticar seu projeto.
Etapa 3. Configure seu Fastfile e distribua seu aplicativo
- Em uma faixa
./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 ID do app Firebase do seu app. Você pode encontrar o App ID no Firebase console, na página General Settings .
app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token
Um token de atualização que é impresso quando você executa a ação de login do plug-in (consulte Autenticar usando uma conta do Google , acima) ou quando você autentica seu ambiente de CI com o Firebase CLI (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 determina 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 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 de texto simples contendo uma lista de endereços de e-mail separados por vírgulas:
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
apelidos de grupo , que você pode procurar 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 separada por vírgulas de nomes de grupo:
groups_file: "/path/to/groups.txt"
debug
Um sinalizador booleano. 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. 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 para testadores, execute sua pista:
fastlane <lane>
O plug-in fastlane gera os seguintes links 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. Quando faltam 30 dias para a expiração da compilação, um aviso de expiração aparece 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 de que uma nova compilação está pronta para teste. 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 baixaram o aplicativo no Firebase console.
(Opcional) Para incrementar automaticamente seu número de compilação toda vez 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 plug-in 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 Obter informações sobre a versão mais recente do seu aplicativo .
Passo 4 (Opcional). Gerenciando testadores para a distribuição
Você pode adicionar e remover testadores da versão do seu aplicativo usando o 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 é adicionado ao seu projeto do Firebase, você pode adicioná-lo a versões individuais. Os testadores que são removidos do seu projeto do Firebase não têm mais acesso às versões do seu projeto, mas podem manter o acesso às suas versões por um período de tempo.
Usar Fastfile
# Use lanes to add or remove testers from an app release. lane(:add_testers) do firebase_app_distribution_add_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end lane(:remove_testers) do firebase_app_distribution_remove_testers( emails: "foo@google.com,bar@google.com" # or file: "/path/to/testers.txt" ) end
# Add or remove testers with the terminal $ fastlane add_testers $ fastlane remove_testers
Executar ações de via rápida
fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"
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 Firebase. -
service_credentials_file
: o caminho para o 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 a versão 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 sobre a versão do aplicativo, notas da 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 da versão anterior.
O valor de retorno da ação é um hash que representa o lançamento 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 ID do aplicativo Firebase 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 que é impresso quando você executa a ação de login do plug-in (consulte Autenticar usando uma conta do Google , acima) ou quando você autentica seu ambiente de CI com a Firebase CLI (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 | Um sinalizador booleano. Você pode definir isso como |
Próximos passos
Aprenda as práticas recomendadas para distribuir aplicativos Android para testadores de controle de qualidade usando CI/CD .