Este documento apresenta as práticas recomendadas de uso do Firebase App Distribution e do fastlane para tornar os fluxos de trabalho de teste de pré-lançamento da plataforma Apple viáveis e passíveis de repetição em um ambiente de CI/CD. Embora o foco seja o fastlane, também mostramos as soluções disponibilizadas pelo console do Firebase, pela CLI do Firebase e pela API Firebase App Distribution pública para aumentar a flexibilidade. Além disso, descrevemos os limites de versões e testadores para que você possa planejar com antecedência e ter a experiência ideal.
Se você também usa o Android, consulte as Práticas recomendadas para distribuir apps Android aos testadores de controle de qualidade usando CI/CD e fastlane.
Antes de começar
Antes de implementar as práticas recomendadas deste documento, ative o App Distribution no console do Firebase para cada app. Se não tiver ativado o App Distribution, o erro 404 será exibido.
Para ativar o App Distribution, siga estas etapas:
Abra a página do App Distribution no console do Firebase.
Selecione seu app iOS.
Clique em Começar.
Automatizar o fluxo de trabalho de teste de pré-lançamento usando CI/CD
Se você quiser automatizar a criação e o lançamento de apps para seus testadores e estiver usando CI/CD, recomendamos utilizar o fastlane. Outra opção é a CLI do Firebase, que permite acessar uma ampla variedade de produtos do Firebase.
Usar o fastlane
Integre o App Distribution ao seu pipeline de CI/CD com o fastlane, uma ferramenta de código aberto que automatiza a criação e o lançamento de apps iOS e Android. Ao criar e distribuir automaticamente as versões mais recentes para os testadores, você garante que eles sempre tenham acesso à versão de teste mais atualizada do app.
Para saber como integrar o App Distribution ao fastlane, consulte Distribuir apps iOS para testadores usando o fastlane. Além disso, consulte um codelab, que orienta no processo de integração do fastlane.
Usar a CLI Firebase
Use as ferramentas da CLI do Firebase que o App Distribution fornece para distribuição de builds aos testadores de forma programática. É possível especificar testadores e notas da versão de um build.
Distribua seu build test.ipa
mais recente para iOS. Para isso, especifique o ID do
app do Firebase, adicione uma nota da versão (opcional) e um arquivo que contenha
os e-mails dos testadores:
firebase appdistribution:distribute test.ipa \ --app 1:1234567890:ios:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txt
Para saber como usar a CLI do Firebase para automatizar builds, consulte Distribuir apps iOS para testadores com a CLI do Firebase.
Usar credenciais de serviço na autenticação
Use o plug-in fastlane do App Distribution ou a CLI do Firebase com contas de serviço, que usam o Application Default Credentials para ajudar você a gerenciar sua CI. Uma conta de serviço é um tipo de conta do Google que representa aplicativos, não usuários. O sistema de CI pode usar contas de serviço para executar cargas de trabalho do App Distribution. Para saber mais, consulte Autenticar com uma conta de serviço.
Se você estiver usando a federação de identidade da carga de trabalho, poderá gerar e usar um arquivo de configuração de credencial em vez de uma chave de conta de serviço.
Limites de versões
O App Distribution oferece suporte a um máximo de 1.000 versões por app. Isso significa que, quando você excede o limite, o App Distribution exclui automaticamente as versões mais antigas acima do limite. Para saber como gerenciar os limites de versões, consulte Por quanto tempo as versões do app permanecem disponíveis?
Adicionar o mesmo conjunto de testadores a várias versões
Para adicionar uma grande quantidade de testadores às versões, use a funcionalidade de gerenciamento de testadores em lote do App Distribution.
Recomendamos que você use grupos para adicionar os mesmos testadores a várias versões. Um grupo funciona como uma lista de controle de acesso. Quando você remove um testador de um grupo, ele perde o acesso a todas as versões distribuídas nele. Para saber mais, consulte Adicionar e remover testadores de um grupo.
Se você tem muitos testadores para gerenciar, use o console do Firebase para adicionar e excluir testadores em lote. Para automatizar a adição e remoção de testadores, use a CLI do Firebase, o fastlane ou a API Firebase App Distribution pública.
Limites de testadores
O App Distribution limita quantidade de testadores que pode ser adicionada a um projeto do Firebase ou a um grupo do App Distribution. Se você exceder esses limites, não poderá distribuir o app para outras pessoas. Para saber mais, consulte Há limites para adicionar testadores ao meu app?
Gerenciar e adicionar automaticamente novos dispositivos de testador do iOS
Para registrar mais dispositivos iOS de testadores, o App Distribution ajuda com o gerenciamento no Portal de desenvolvedores da Apple informando sobre novos dispositivos iOS de testadores por e-mail ou arquivos CSV. Para saber mais, consulte Importar testadores por arquivos CSV. Também é possível exportar novos dispositivos de forma programática com o fastlane.
Para saber como configurar uma ação do fastlane que extrai automaticamente UDIDs, os adiciona ao console para desenvolvedores da Apple e, em seguida, recria e distribui o app, consulte Distribuir builds iOS de pré-lançamento mais rapidamente com o App Distribution e o fastlane.
Permitir que possíveis testadores se inscrevam em testes
Para facilitar a distribuição do app para mais testadores, recomendamos usar links de convite. Um link de convite é um URL exclusivo que permite aos testadores inserir os endereços de e-mail para se inscreverem e testarem um app. Essa é uma forma simples de aumentar sua base de testes internos.
São exemplos de casos de uso dos links de convite programas dogfood de empresas, organizações com grandes equipes de controle de qualidade e grupos de desenvolvedores que querem que clientes individuais possam controlar o acesso do testador.
Recomendamos criar um link de convite para um grupo. Os testadores que se inscreverem pelo link de convite vão ser adicionados automaticamente às versões subsequentes.
Para saber mais, consulte Criar links de convite e Adicionar e remover testadores de um grupo.
Verificar se uma versão específica está em teste
Quando uma nova versão é enviada, seus testadores são notificados por e-mail. Para complementar essa notificação, você pode usar os links de versão e alertas no app para garantir que os testadores estão usando a versão correta do app:
Links de versão: use esse recurso quando quiser compartilhar uma versão específica com testadores. Para saber como usar links de versão, consulte Distribuir apps iOS para testadores usando o console do Firebase. Esses links também estão disponíveis nas ferramentas de linha de comando (CLIs) do Firebase e do fastlane. Você pode usar esses recursos com suas ferramentas de automação de build.
Alertas no app: use esses alertas para garantir que a versão mais recente do app seja testada. Ao integrar o SDK do iOS do Firebase App Distribution, é possível mostrar alertas no app para os testadores quando novos builds estiverem disponíveis. Para saber como fazer isso, acesse Notificar os testadores sobre novos builds.
Remover automaticamente o acesso de testadores que se desligam da empresa
Depois que o fluxo de teste interno de CI/CD estiver em execução, você terá que garantir que as pessoas desligadas da empresa não tenham mais acesso aos builds internos. Para ajudar você a gerenciar o acesso dos testadores aos builds, o App Distribution fornece as seguintes opções:
fastlane:: use seu arquivo Fastfile ou execute ações do fastlane diretamente. Para saber mais como usar o fastlane para remover testadores, consulte Distribuir apps iOS para os testadores com o fastlane.
API Firebase App Distribution pública: use o endpoint
testers.batchRemove
.