Pilot (Fastlane) é uma ferramenta para gerenciar builds de aplicativos iOS no TestFlight: upload de arquivos binários, gerenciamento de grupos de testadores e acompanhamento de status de builds. Ao contrário do upload manual via App Store Connect, o Pilot automatiza todas as operações com a API do TestFlight. De acordo com a documentação oficial do Fastlane (2026), o Pilot permite que as equipes reduzam o tempo de publicação de versão beta de 10 minutos para apenas alguns segundos.
Pontos principais
Pilot (Fastlane) é um componente do ecossistema Fastlane para automatizar o trabalho com o TestFlight — a plataforma da Apple para testes beta de aplicativos móveis. O Pilot cuida de todas as operações rotineiras: upload de builds, adição de testadores, gerenciamento de grupos e acompanhamento de status de builds.
Sem o Pilot, o processo de distribuição beta é assim: o desenvolvedor abre manualmente o App Store Connect, seleciona o aplicativo, faz upload do IPA via Xcode Organizer, configura um grupo de testadores e envia convites. TestFlight é o serviço da Apple para distribuir versões beta de aplicativos para testadores antes do lançamento oficial na App Store.
De acordo com o App Store Connect Help (2025), testadores externos devem passar pelo processo Beta App Review antes da primeira instalação do build — isso leva de 1 a 48 horas. O Pilot acompanha automaticamente o status da revisão e notifica a equipe quando o build está pronto para distribuição para grupos de testadores externos.
Use o Pilot em qualquer projeto que exija entrega regular de builds beta para testadores — é uma ferramenta padrão para pipelines CI/CD de iOS, garantindo um processo de entrega previsível.
A funcionalidade do Pilot cobre todo o ciclo de vida do gerenciamento de builds beta: desde o upload de um arquivo binário até a notificação dos testadores sobre uma nova versão. Cada função é implementada como um comando separado com comportamento previsível e registro detalhado de cada etapa.
O comando fastlane pilot upload envia o arquivo IPA para o App Store Connect e cria um novo build no TestFlight. O Pilot verifica automaticamente a validade do arquivo binário, a conformidade da versão e o identificador do aplicativo. App Store Connect é a plataforma da Apple para gerenciar aplicativos, incluindo upload de builds, metadados, análises e relatórios de vendas.
Após o upload, o Pilot aguarda o processamento do arquivo binário pela Apple — o processo leva de 5 a 30 minutos, dependendo do tamanho do build. Durante a espera, o Pilot exibe uma barra de progresso com informações sobre o status atual do processamento: Processing, Validating ou Ready. Após o processamento bem-sucedido, o build fica disponível para atribuição a grupos de testadores.
O Pilot suporta o gerenciamento de grupos de testadores internos e externos. Testadores internos são membros da sua equipe Apple Developer que obtêm acesso aos builds instantaneamente, sem passar pelo Beta App Review. Testadores externos são usuários convidados por email, que precisam de aprovação da revisão antes da primeira instalação.
O comando fastlane pilot add adiciona novos testadores a um grupo por email ou Apple ID. O Pilot envia automaticamente os convites e verifica se o testador aceitou o convite. Para adição em massa, você pode passar uma lista de emails de um arquivo usando o parâmetro --testers_file_path, o que é conveniente ao formar inicialmente um grupo de testadores com centenas de participantes.
# Enviar um novo build para o TestFlight
fastlane pilot upload --ipa "build/MyApp.ipa"
# Adicionar um testador a um grupo
fastlane pilot add --email "tester@company.com" \
--groups "QA Team"
A configuração do Pilot não requer um arquivo de configuração separado — as configurações são passadas através do Appfile (o arquivo comum do Fastlane) ou argumentos de linha de comando. Os principais parâmetros incluem o apple_id do aplicativo, app_identifier, team_id e credenciais para acessar a API do App Store Connect.
Para autenticação, o Pilot usa a Chave de API do App Store Connect (método recomendado) ou a autenticação de dois fatores do Apple ID. App Store Connect API Key é uma chave de acesso gerada no App Store Connect que permite interagir com a API sem inserir senha e código de confirmação interativamente.
# Appfile — configuração comum do Fastlane
app_identifier("com.company.app")
apple_id("developer@company.com")
team_id("TEAM123456")
# Variáveis de ambiente para Pilot
# APP_STORE_CONNECT_API_KEY_PATH=/path/to/key.p8
O parâmetro app_identifier define o Bundle Identifier do aplicativo, que deve corresponder ao identificador especificado no projeto Xcode e no App Store Connect. O parâmetro apple_id é usado para autenticação no esquema de dois fatores, e team_id — para selecionar a equipe de desenvolvimento se a conta estiver vinculada a várias equipes Apple Developer.
Para o Pilot funcionar, é necessário configurar a Chave de API do App Store Connect no ambiente CI/CD. A chave é gerada em App Store Connect → Users and Access → Keys → Generate API Key. Salve o arquivo .p8 nos segredos do sistema CI e especifique o caminho através da variável de ambiente APP_STORE_CONNECT_API_KEY_PATH ou do parâmetro --api_key_path nos comandos do Pilot.
O conjunto de comandos do Pilot cobre todos os cenários do TestFlight: upload de builds, gerenciamento de testadores, visualização de status e acompanhamento de metadados. Cada comando retorna uma saída JSON estruturada para processamento posterior em scripts CI/CD.
O comando fastlane pilot builds exibe uma lista de todos os builds do aplicativo com versão, status de processamento e data de upload. O status do build pode ser um dos seguintes: Processing — a Apple está processando o arquivo binário, Ready — o build está disponível para distribuição, Rejected — o build foi rejeitado devido a erros de validação.
# Visualizar a lista de todos os builds no TestFlight
fastlane pilot builds
# Atribuir um build a um grupo de testadores
fastlane pilot distribute --build_number 42 \
--groups "QA Team" --notify
# Visualizar informações sobre um build específico
fastlane pilot build_info --build_number 42
O comando fastlane pilot distribute atribui o build a grupos de testadores especificados e envia notificações. O parâmetro --notify ativa o envio de notificações por email aos testadores sobre um novo build disponível — isso é fundamental para envolver os testadores beta no processo de teste e acelerar o feedback.
Para gerenciar metadados do build, use o parâmetro --changelog, que define o texto de descrição das mudanças na nova versão. Este texto é exibido aos testadores no convite de teste no aplicativo TestFlight. Recomenda-se especificar as principais mudanças, bugs corrigidos e novos recursos em cada build.
| Comando Pilot | Finalidade | Parâmetros principais |
|---|---|---|
| pilot upload | Enviar IPA para TestFlight | --ipa, --skip_waiting |
| pilot distribute | Atribuir build a grupos | --build_number, --groups |
| pilot add | Adicionar testadores | --email, --groups |
| pilot builds | Listar todos os builds | --app_identifier |
| pilot build_info | Informações do build | --build_number |
Pilot em CI/CD é o estágio final do pipeline de entrega de aplicativos iOS. Depois que o Gym compila o IPA e os testes são aprovados, o Pilot envia o build para o TestFlight e o distribui para grupos de testadores. Isso permite que as equipes de QA obtenham a nova versão do aplicativo em minutos após um commit no repositório.
Um pipeline típico de CI/CD para iOS inclui a sequência: Match (certificados), Gym (compilação IPA), Pilot (envio para TestFlight e distribuição). Cada estágio depende do anterior, garantindo que apenas builds válidos e assinados sejam entregues aos testadores.
# Pipeline completo no Fastfile
lane :beta do
match(type: :appstore)
gym(scheme: "MyApp", export_method: "app-store")
pilot("build/MyApp.ipa", groups: ["QA", "PM"])
end
O parâmetro skip_waiting no comando upload permite não aguardar a conclusão do processamento do arquivo binário pela Apple dentro de uma tarefa CI — o Pilot envia a solicitação de upload, recebe o identificador do build e finaliza. Isso acelera o pipeline, pois o processamento pode levar até 30 minutos, que não são gastos esperando no runner de CI.
Para o Pilot funcionar corretamente em CI, é necessário configurar a chave de API do App Store Connect. Salve o arquivo de chave .p8 no armazenamento seguro do sistema CI e passe o caminho através da variável de ambiente APP_STORE_CONNECT_API_KEY_PATH. O Pilot usa esta chave para autenticar na API sem autenticação de dois fatores, o que é crítico para cenários automatizados.
Ao usar o Pilot, os desenvolvedores encontram com mais frequência erros de autenticação, configuração incorreta do aplicativo e problemas com o processamento de arquivos binários pela Apple. O diagnóstico de problemas do Pilot começa verificando o status do build no App Store Connect através do comando pilot builds.
O erro “Your app is not available for testing in TestFlight” ocorre quando o aplicativo não está configurado para teste no App Store Connect. Solução: abra a seção TestFlight no App Store Connect, ative o teste para o aplicativo e certifique-se de que Export Compliance está preenchido corretamente para o seu tipo de criptografia.
O erro “Missing iOS Distribution signing identity” indica a ausência de um certificado de Distribution no Keychain. Solução: execute o Match para baixar o certificado correto antes de chamar o Pilot. Um certificado de Distribution difere do Development — ele é usado para assinar builds destinados à distribuição via TestFlight ou App Store.
Com o erro “Invalid Provisioning Profile”, o build contém um perfil incorreto para o método de exportação selecionado. Solução: verifique se o Gym está usando o export_method correto que corresponde ao tipo de perfil no Match. Se o build foi compilado com um perfil de development, o Pilot não conseguirá enviá-lo para o TestFlight — é necessário um perfil app-store ou ad-hoc.
Perguntas frequentes
O Pilot suporta dois tipos: testadores internos (Internal Testers) — membros da equipe Apple Developer que obtêm acesso instantaneamente, e testadores externos (External Testers) — usuários convidados por email que precisam passar pelo Beta App Review antes da instalação.
O TestFlight exige um número de build único para cada upload. O Pilot verifica automaticamente duplicatas e rejeita o upload de um build com um número que já existe no App Store Connect. Para um novo upload, aumente o build number no projeto Xcode antes da compilação.
Não, o Pilot é um componente do Fastlane e não é instalado separadamente. No entanto, você pode chamar apenas o Pilot sem outras ferramentas do Fastlane. Para isso, instale o Fastlane via gem install fastlane e use apenas os comandos pilot, ignorando match e gym.
Use o comando fastlane pilot reject com o número do build especificado. O Pilot desabilita o acesso dos testadores ao build especificado, mas não o remove do App Store Connect. O build rejeitado permanece no histórico do TestFlight com status Rejected para auditoria de lançamentos.
Use o parâmetro --notify no comando pilot distribute. O Pilot envia notificações por email para todos os testadores nos grupos especificados com um link para instalar a nova versão via TestFlight. Sem esta flag, os testadores verão o novo build apenas ao abrir o aplicativo TestFlight.
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