Práticas recomendadas para distribuir apps da Apple aos testadores de controle de qualidade usando CI/CD e fastlane

Neste documento, descrevemos as práticas recomendadas de uso do Firebase App Distribution e o 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 disponíveis usando o Console do Firebase, a CLI do Firebase e a API pública Firebase App Distribution 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, ative o App Distribution no Console do Firebase para cada app. Senão, você vai receber um erro 404.

Para ativar o App Distribution, siga as etapas abaixo:

  1. Abra a página "App Distribution" no Console do Firebase.

  2. Selecione seu app iOS.

  3. 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 com o fastlane. Além disso, consulte um codelab, que orienta no processo de integração do fastlane.

Usar a CLI do Firebase

Use as ferramentas da CLI do Firebase que o App Distribution fornece para distribuir os 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

Se você quiser 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 aproveitam as Application Default Credentials e ajudam você a gerenciar a CI. Uma conta de serviço é um tipo de Conta do Google que representa aplicativos, e não usuários. O sistema de CI usa contas de serviço para executar as cargas de trabalho do App Distribution. Saiba mais em 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 suporta até 1.000 versões por app. Isso significa que, quando você excede o limite, o App Distribution exclui automaticamente as versões mais antigas. 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 massa 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, adicione e exclua testadores em massa usando o Console do Firebase. Para automatizar a adição e a remoção de testadores, utilize a CLI do Firebase, o fastlane ou a API pública Firebase App Distribution.

Limites de testadores

O App Distribution limita o número de testadores que podem ser adicionados 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 que você registre mais dispositivos iOS de testadores, o App Distribution ajuda com o gerenciamento no Portal de desenvolvedores da Apple informando sobre novos dispositivos por e-mail ou arquivos CSV. Para saber mais, consulte Importar testadores de 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 Apple Developer Console e, em seguida, recria e distribui o app, consulte Distribuir builds iOS de pré-lançamento mais rápido 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 os testadores. Para saber como usar links de versão, consulte Distribuir apps iOS aos testadores usando o Console do Firebase. Esses links também estão disponíveis em nossas ferramentas de linha de comando (CLIs) do Firebase e fastlane. Você pode usar esses recursos com suas ferramentas de automação do build.

  • Alertas no app: use esses alertas para garantir que a versão mais recente do app seja testada. Ao integrar o SDK do Firebase App Distribution para iOS, é possível mostrar alertas no app para seus testadores quando novos builds estiverem disponíveis. Para saber como, 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 no gerenciamento do acesso de testadores aos builds, o App Distribution oferece as seguintes opções: