Você pode distribuir compilações para testadores usando fastlane , uma plataforma de código aberto que automatiza a construção e o lançamento de aplicativos iOS e Android. Segue instruções simples definidas em um Fastfile
. Depois de configurar o fastlane e seu Fastfile
, você poderá integrar o App Distribution à sua configuração do fastlane.
Passo 1. Configurar fastlane
Para adicionar o App Distribution à sua configuração fastlane, execute o seguinte comando na raiz do seu projeto iOS:
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 apenas se seu aplicativo não contiver um arquivo de configuração do Firebase (
GoogleService-Info.plist
) : 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:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
O caminho para o arquivo
GoogleService-Info.plist
, relativo ao caminho do produto arquivado. Defina comoGoogleService-Info.plist
por padrão.O arquivo será usado para obter o Firebase App ID do seu aplicativo se o parâmetro
app
não for especificado.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 .
ipa_path
Substitui
apk_path
(obsoleto). Caminho absoluto para o arquivo IPA que você deseja carregar. 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"
debug
Uma bandeira booleana. Você pode definir isso como
true
para imprimir a saída de depuração detalhada.
Por 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 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 (web clip do iOS) 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 IPA). 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 Configurar como 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 a ação increment_build_number
. 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_build_number({ build_number: latest_release[:buildVersion].to_i + 1 })
end
Para saber mais sobre esse recurso de plug-in fastlane, consulte Obtenha informações sobre a versão mais recente do seu aplicativo .
Etapa 4 (opcional). Gerenciar 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 apenas se seu aplicativo não contiver 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 obter o Firebase App ID do seu aplicativo se o parâmetro |
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
Para registrar mais dispositivos manual ou programaticamente, consulte Registrar dispositivos iOS adicionais .
Aprenda as práticas recomendadas para distribuir aplicativos Apple para testadores de controle de qualidade usando CI/CD e fastlane .