Distribua versões para os testadores usando o
fastlane (em inglês), uma plataforma de código aberto que automatiza a criação e o lançamento de apps
iOS e Android. Ele segue instruções simples definidas em um Fastfile
. Depois de configurar o fastlane e o Fastfile
, é possível integrar o App Distribution à sua configuração do fastlane.
Etapa 1. Configurar o fastlane
Para adicionar o App Distribution à configuração do fastlane, execute o seguinte comando pela raiz do seu projeto iOS:
fastlane add_plugin firebase_app_distribution
Se o comando solicitar uma escolha, selecione
Option 3: RubyGems.org
.
Etapa 2. Como autenticar com o Firebase
Antes de usar o plug-in do fastlane, primeiro faça a autenticação com seu projeto do Firebase de uma das seguintes maneiras. Por padrão, o plug-in do fastlane procura credenciais da CLI do Firebase se nenhum outro método de autenticação for usado.
Etapa 3. Configurar o Fastfile e distribuir o app
- Em uma linha
./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 apenas se o app não tiver um arquivo de configuração do Firebase (
GoogleService-Info.plist
): o ID do app Firebase do seu aplicativo. Encontre o ID do app no console do Firebase, na página Configurações gerais.app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
O caminho para o arquivo
GoogleService-Info.plist
, que está relacionado ao caminho do produto arquivado. Definido comoGoogleService-Info.plist
por padrão.O arquivo será usado para receber o ID do app do Firebase do seu aplicativo se o parâmetro
app
não estiver especificado.firebase_cli_token
Um token de atualização que é impresso quando você autentica o ambiente de CI com a CLI do Firebase. Para mais informações, consulte Usar a CLI com sistemas de CI.
service_credentials_file
O caminho para o arquivo JSON da sua conta de serviço do Google. Veja acima como fazer a autenticação usando credenciais da conta de serviço.
ipa_path
Substitui
apk_path
(descontinuado). Caminho absoluto para o arquivo IPA que você quer fazer upload. Se não for especificado, o fastlane vai determinar o local do arquivo na linha em que o arquivo foi gerado.release_notes
release_notes_file
Notas da versão para este build.
É possível especificar as notas da versão diretamente:
release_notes: "Text of release notes"
Como opção, 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ê quer convidar.
É 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, especifique o caminho para um arquivo de texto simples que contém uma lista separada por vírgulas de endereços de e-mail:
testers_file: "/path/to/testers.txt"
groups
groups_file
Os grupos de testadores que você quer convidar (consulte Gerenciar testadores). Grupos são especificados por
aliases de grupo , que podem ser encontrados no console do Firebase.É possível especificar os grupos como uma lista separada por vírgulas:
groups: "qa-team, trusted-testers"
Também é possível especificar o caminho para um arquivo de texto simples contendo uma lista separada por vírgulas de nomes de grupos:
groups_file: "/path/to/groups.txt"
test_devices
test_devices_file
Os tipos de distribuição a seguir fazem parte do recurso Beta Testador automatizado.
Os dispositivos de teste para os quais você quer distribuir builds (consulte Testes automatizados).
É possível especificar os dispositivos de teste como uma lista de dispositivos de teste separada por ponto e vírgula:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
Também é possível especificar o caminho para um arquivo de texto simples que contenha uma lista de dispositivos de teste separada por ponto e vírgula:
test_devices_file: "/path/to/test-devices.txt"
test_username
O nome de usuário para o login automático a ser usado durante os testes automatizados.
test_password
test_password_file
A senha para login automático que será usada durante os testes automatizados.
Se preferir, é possível especificar o caminho para um arquivo de texto simples que contenha 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 que será usado durante os testes automatizados.
test_password_resource
Nome do recurso do campo de senha para login automático que será usado durante os testes automatizados.
test_non_blocking
Execute testes automatizados de forma assíncrona. Acesse o console do Firebase para conferir os resultados do teste automático.
debug
Uma sinalização booleana. É possível definir isso como
true
para imprimir a saída de depuração detalhada.
Exemplo:
platform :ios do desc "My awesome app" lane :distribute do build_ios_app(...) # build_ios_app is a built-in fastlane action. release = firebase_app_distribution( app: "1:123456789:ios:abcd1234", testers: "tester1@company.com, tester2@company.com", release_notes: "Lots of amazing new features to test out!" ) end end
Para disponibilizar o build para os testadores, execute a linha:
fastlane <lane>
O valor de retorno da ação é um hash que representa a versão enviada.
Esse hash também está disponível em lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
.
Para mais informações sobre os campos disponíveis no hash, consulte a
documentação da API REST.
O plug-in fastlane gera os seguintes links após o upload da versão. Esses links ajudam a gerenciar binários e garantir que os testadores e outros desenvolvedores tenham a versão certa:
- Um link para o console do Firebase que exibe uma única versão. Você pode compartilhar esse link com outros desenvolvedores na sua organização.
- Um link para a versão na experiência do testador (clipe da Web para iOS) que permite que os testadores vejam as notas da versão e instalem o app no dispositivo. O testador precisa de acesso à versão para usar o link.
- Um link assinado que faz o download e instala o binário do app (arquivo IPA) diretamente. O link expira depois de uma hora.
Depois de distribuir seu build, ele fica disponível no painel do App Distribution do console do Firebase por 150 dias. Quando faltarem 30 dias para o vencimento do build, o aviso de expiração vai 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 iniciar o processo. Os testadores atuais recebem notificações por e-mail informando que um novo build está pronto para ser testado. Para saber como instalar o app de teste, consulte Configurar como testador. É possível monitorar o status de cada testador para determinar se ele aceitou o convite e se fez o download do app no console do Firebase.
(Opcional) Para incrementar automaticamente o número da versão sempre que criar
uma nova versão no App Distribution, use as ações
firebase_app_distribution_get_latest_release
e
increment_build_number
.
O código a seguir mostra um exemplo de como incrementar automaticamente o
número da versão:
lane :increment_version do
latest_release = firebase_app_distribution_get_latest_release(
app: "<your Firebase app ID>"
)
increment_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Para saber mais sobre esse recurso do plug-in do fastlane, consulte Receber informações sobre a versão mais recente do seu app.
Etapa 4 (opcional). Gerenciar testadores para a distribuição
É possível adicionar e remover testadores do projeto ou grupo usando o arquivo Fastfile
ou executando ações do fastlane diretamente. As ações em execução substituem
os valores definidos em Fastfile
.
Depois que um testador for adicionado ao projeto do Firebase, é possível adicionar às versões individuais. Os testadores removidos de um projeto do Firebase não terão mais acesso às versões do seu projeto, mas poderão manter o acesso às versões por um 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
Executar ações do 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"
Também é possível 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 são adicionados ao grupo especificado (ou removidos dele).service_credentials_file
: o caminho para o arquivo de credenciais do serviço do Google.firebase_cli_token
: token de autenticação para a CLI do Firebase.
service_credentials_file
e firebase_cli_token
são os mesmos
argumentos usados pela ação de upload.
Etapa 5 (opcional). Ver informações sobre a versão mais recente do seu app
Use a ação firebase_app_distribution_get_latest_release
para buscar informações sobre a versão mais recente do seu app no App Distribution,
incluindo informações e notas sobre a versão do app, além do 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 a versão mais recente.
Esse hash também está disponível em lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE]
.
Para mais informações sobre os campos disponíveis no hash, consulte a
documentação da API REST.
Parâmetros
Parâmetros firebase_app_distribution_get_latest_release | |
---|---|
app
|
Obrigatório apenas se o app não tiver um arquivo de configuração do Firebase ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path
|
O caminho para o arquivo
O arquivo será usado para receber o ID do app do Firebase do seu aplicativo se o parâmetro |
firebase_cli_token
|
Um token de atualização que é impresso quando você autentica o ambiente de CI com a CLI do Firebase. Para mais informações, consulte Usar a CLI com sistemas de CI. |
service_credentials_file
|
O caminho para o arquivo JSON da sua conta de serviço do Google. Consulte a documentação anterior para saber como fazer a autenticação usando credenciais da conta de serviço. |
service_credentials_json_data
|
Conteúdo do arquivo JSON da conta de serviço do Google. Consulte a documentação anterior para saber como fazer a autenticação usando credenciais da conta de serviço. |
debug
|
Uma sinalização booleana. É possível definir isso como |
Próximas etapas
Para registrar mais dispositivos de forma manual ou programática, consulte Registrar outros dispositivos iOS.
Confira as práticas recomendadas para distribuir apps da Apple aos testadores de controle de qualidade usando CI/CD e fastlane.