TestFlight é a plataforma oficial da Apple para distribuir versões de pré-lançamento de aplicativos entre testadores. Permite que desenvolvedores enviem versões beta para o App Store Connect, gerenciem o acesso e coletem feedback antes da publicação. De acordo com a Documentação para Desenvolvedores da Apple, o TestFlight suporta até 10.000 testadores externos por meio de um link público e até 100 internos por Apple ID.
Principais pontos
TestFlight é uma plataforma de teste beta integrada ao App Store Connect para distribuir versões de pré-lançamento de aplicativos antes da publicação na App Store. Os desenvolvedores enviam builds arquivados via Xcode e os distribuem entre os testadores sem a necessidade de distribuir arquivos IPA manualmente.
A Apple adquiriu o TestFlight em 2014 para substituir a distribuição Ad Hoc por meio de Perfis de Provisionamento. Anteriormente, os desenvolvedores coletavam UDIDs de dispositivos, criavam perfis de provisionamento e distribuíam IPAs por meio de serviços de terceiros. O TestFlight automatizou todo o processo: o testador instala o aplicativo beta através do TestFlight App, enquanto o desenvolvedor gerencia o acesso por meio de uma interface web.
De acordo com a WWDC 2024, o TestFlight processa mais de 2 milhões de instalações de teste mensalmente. A plataforma suporta distribuição em todas as plataformas Apple, incluindo iOS, iPadOS, macOS, tvOS, watchOS e visionOS, tornando-se a única ferramenta unificada de teste beta no ecossistema Apple.
TestFlight divide os testes em dois tipos: Teste Interno para membros da equipe (até 100 participantes, build disponível imediatamente após o envio) e Teste Externo para usuários externos (até 10.000 participantes, requer revisão do Beta App Review). O teste interno não requer moderação, tornando-o ideal para verificação rápida de builds dentro da equipe.
O Teste Externo permite convidar testadores por e-mail ou por meio de um link público. Após passar pelo Beta App Review, o build fica disponível para download para todos os convidados. Para aplicativos publicados pela primeira vez, o Teste Externo é obrigatório de acordo com as Diretrizes de Revisão da App Store.
O fluxo de trabalho do TestFlight começa com o arquivamento do aplicativo no Xcode e o envio para o App Store Connect através do Organizer ou Transporter. Após o envio, o build passa por validação automática e varredura de segurança.
Os testadores internos recebem uma notificação sobre o build disponível através do TestFlight App. Eles podem instalar o aplicativo e deixar feedback através da interface integrada de capturas de tela e comentários de texto. Para testadores externos, é necessária a aprovação do Beta App Review, após a qual o build é distribuído da mesma forma que os internos.
O TestFlight coleta automaticamente métricas de uso: número de instalações, logs de crash, capturas de tela com anotações e feedback. O desenvolvedor vê esses dados na seção TestFlight do App Store Connect. Todos os dados são agregados por versões de build, facilitando a comparação de estabilidade entre diferentes builds.
Cada build enviado ao TestFlight tem um período de validade de 90 dias. Após a expiração, os testadores não podem mais instalar ou executar o aplicativo. Para continuar os testes, um novo build com um número de versão incrementado deve ser enviado. Essa limitação incentiva os desenvolvedores a atualizar os builds regularmente.
À medida que a data de expiração se aproxima, o TestFlight envia notificações tanto para o desenvolvedor quanto para os testadores. Se um novo build não for enviado a tempo, os testes são interrompidos e os participantes perdem o acesso ao aplicativo até que uma nova versão apareça.
A configuração do TestFlight começa no App Store Connect, na seção TestFlight. Para começar, é necessário pelo menos um build do aplicativo enviado. A interface é dividida em três seções principais: builds, testadores internos e grupos externos.
Os testadores internos são adicionados por Apple ID. Cada participante deve ser convidado através do App Store Connect com uma função que inclua acesso aos testes. Após o convite, o testador recebe um e-mail e pode instalar o aplicativo através do TestFlight App no seu dispositivo.
Para testes externos, são criados grupos que combinam testadores por cenários. Cada grupo é vinculado a builds específicos. Um grupo pode ter um link público para adesão automática — conveniente para projetos de código aberto ou testes beta em massa. De acordo com a Documentação para Desenvolvedores da Apple, um link público pode ser revogado a qualquer momento sem perder o acesso dos testadores que já aderiram.
O envio de um build para o TestFlight é feito através do Xcode Organizer após arquivar o projeto. Para o envio, é necessária uma conta no Programa Apple Developer com permissões de Admin ou App Manager no App Store Connect.
Antes do envio, o build deve ser assinado com um Certificado de Distribuição válido e conter um Perfil de Provisionamento com distribuição na App Store. O Xcode configura automaticamente a assinatura através da Assinatura Automática quando há uma conta de desenvolvedor ativa.
# Upload via xcrun altool (Xcode 15+ uses notarytool)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# Upload to App Store Connect directly
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
Após o envio, o build passa por verificação automática: validação do binário, varredura de código malicioso e verificação de conformidade com as Diretrizes de Revisão da App Store. A verificação geralmente leva de alguns minutos a uma hora. O status é exibido no App Store Connect, na seção TestFlight.
Para CI/CD (GitHub Actions, Bitrise, Jenkins), utiliza-se xcrun altool ou notarytool para enviar o build diretamente sem o Xcode. As chaves de autenticação são armazenadas no Keychain ou na API do App Store Connect. O Fastlane fornece a ação upload_to_testflight para automação completa do processo.
O convite de testadores para o TestFlight depende do tipo de teste. Os testadores internos são adicionados diretamente no App Store Connect por Apple ID e obtêm acesso a todos os builds imediatamente após o envio. Os testadores externos são convidados através de grupos com builds específicos atribuídos.
Para testes externos, é necessário passar pelo Beta App Review — uma versão simplificada da Revisão da App Store que verifica a funcionalidade básica e a conformidade com as regras. O primeiro build externo geralmente passa pela revisão em 1–2 dias, com os subsequentes sendo mais rápidos. Após a aprovação, todos os testadores do grupo recebem uma notificação.
Um link público simplifica os convites: o desenvolvedor publica o link em um site ou mídias sociais, os usuários o seguem e entram automaticamente nos testes. O TestFlight suporta até 10.000 participantes por grupo externo, e o número de grupos é ilimitado. Vários grupos com diferentes builds podem ser configurados para cada aplicativo.
Os testadores enviam feedback através do TestFlight App, anexando capturas de tela e anotações. O desenvolvedor vê todo o feedback no App Store Connect, agrupado por builds. Cada feedback contém a versão do sistema operacional, o modelo do dispositivo e um carimbo de data/hora, facilitando a reprodução e correção de bugs.
A publicação de um aplicativo do TestFlight para a App Store não requer reconstrução. Basta selecionar o build beta aprovado no App Store Connect e clicar em Enviar para Revisão. O mesmo build que passou pelos testes beta é enviado para a Revisão final da App Store sem recompilação.
Isso garante que a versão exata testada pelos participantes entre em produção, eliminando os riscos de diferenças entre os builds beta e de lançamento. Após passar pela Revisão final da App Store, o build é automaticamente publicado na App Store de acordo com as regras de Disponibilidade configuradas.
Antes da publicação, o desenvolvedor precisa atualizar os metadados: descrição da versão, capturas de tela para a nova versão do sistema operacional e informações sobre as alterações. Os builds do TestFlight que não foram enviados para a App Store são automaticamente excluídos 90 dias após o envio, juntamente com todos os dados de teste.
Perguntas frequentes
A verificação automática geralmente leva de 5 minutos a uma hora. O Beta App Review para testes externos leva de algumas horas a 2 dias. Para builds subsequentes, a revisão é mais rápida, pois a Apple considera o histórico de revisões anteriores.
O TestFlight está disponível apenas para membros do Apple Developer Program ($99/ano). Sem uma assinatura, não é possível enviar builds para o App Store Connect. Para distribuição Ad Hoc sem assinatura, seria necessária uma conta Enterprise ou SideStore.
A distribuição Ad Hoc requer a coleta de UDIDs de dispositivos, criação de um Perfil de Provisionamento e distribuição manual do IPA. O TestFlight automatiza todo o processo: o desenvolvedor envia o build, o testador instala através do TestFlight App sem perfis de provisionamento ou UDIDs.
O tempo de vida de um build no TestFlight é de 90 dias a partir do envio. Após a expiração, os testadores não podem instalar ou executar o aplicativo. Para continuar os testes, um novo build com um número de versão incrementado deve ser enviado.
O TestFlight suporta aplicativos macOS a partir do macOS 11 Big Sur. Os testadores instalam a versão beta através do TestFlight App no Mac. O processo de envio e gerenciamento é idêntico ao da versão iOS: arquivar no Xcode, enviar através do Organizer.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também