Pular para o conteúdo principal

Apple App Store - Deploy iOS

Última atualização: 6 de novembro de 2025

Visão Geral​

Guia completo para publicação de aplicativos iOS na Apple App Store, incluindo o processo de TestFlight para testes beta e deploy em produção. A Apple oferece um fluxo de aprovação rigoroso que garante qualidade e segurança dos aplicativos disponibilizados na loja.

Tipos de Distribuição​

TipoAlcanceDescrição
TestFlight (Beta)Até 10.000 testadoresTestes beta antes do lançamento
ProduçãoTodos os usuáriosVersão final disponível na App Store

Pré-requisitos​

Conta de Desenvolvedor Apple​

  • Apple Developer Program ativo
  • App Store Connect configurado
  • Certificados e Perfis de provisionamento criados

Configurações Necessárias​

ItemDescriçãoObrigatório
IPAArquivo compilado do aplicativo✅ Sim
Certificado de DistribuiçãoPara assinar o app✅ Sim
Provisioning ProfilePerfil de provisionamento✅ Sim
Ícone do aplicativo1024x1024px em PNG✅ Sim
ScreenshotsPor tamanho de tela✅ Sim
DescriçãoCurta e detalhada✅ Sim
Política de PrivacidadeURL válida✅ Sim
IDFAJustificativa se usar rastreamentoCondicional

TestFlight - Distribuição Beta​

Visão Geral​

TestFlight é a plataforma oficial da Apple para distribuir versões beta do seu aplicativo para testadores antes do lançamento público. Permite coletar feedback, identificar bugs e validar funcionalidades com usuários reais.

Características do TestFlight​

CaracterísticaDetalhes
Testadores InternosAté 100 membros da equipe do App Store Connect
Testadores ExternosAté 10.000 testadores públicos
Duração do Build90 dias após upload
Aprovação AppleNecessária para testadores externos
FeedbackColeta automática via app TestFlight
InstalaçãoVia app TestFlight na App Store

Para que serve o TestFlight​

Casos de Uso​

  • ✅ Testes internos com equipe de desenvolvimento e QA
  • ✅ Testes beta com grupo selecionado de usuários
  • ✅ Validação de funcionalidades antes do lançamento
  • ✅ Coleta de feedback estruturado
  • ✅ Identificação de bugs em ambiente real
  • ✅ Testes de aceitação do usuário (UAT)
  • ✅ Demonstrações para clientes e stakeholders

Benefícios​

BenefícioDescrição
Sem custos adicionaisIncluído no Apple Developer Program
Fácil distribuiçãoTestadores instalam via app TestFlight
Feedback integradoSistema nativo de coleta de feedback
Múltiplas versõesAté 3 builds ativos simultaneamente
AnálisesMétricas de uso e crashes

Tipos de Testadores​

1. Testadores Internos​

Características:

  • Limite: Até 100 testadores
  • Aprovação: Nenhuma (distribuição imediata)
  • Acesso: Membros do App Store Connect com papel adequado
  • Finalidade: Testes rápidos com equipe interna

Como Funciona:

1. Testador deve ter conta no App Store Connect
2. Papel: Admin, Desenvolvedor, Marketing ou Vendas
3. Acesso imediato após upload do build
4. Não requer revisão da Apple

Quando Usar:

  • ✅ Validações rápidas de desenvolvimento
  • ✅ Testes de regressão
  • ✅ Verificação de builds antes de distribuir externamente
  • ✅ QA interno

2. Testadores Externos​

Características:

  • Limite: Até 10.000 testadores
  • Aprovação: Revisão da Apple (1-2 dias)
  • Acesso: Qualquer pessoa com e-mail ou link público
  • Finalidade: Beta público ou privado

Como Funciona:

1. Enviar build para revisão da Apple
2. Aguardar aprovação (1-2 dias)
3. Convidar testadores por e-mail ou link
4. Testadores instalam via app TestFlight

Quando Usar:

  • ✅ Testes beta com usuários selecionados
  • ✅ Validação com clientes
  • ✅ Coleta de feedback em larga escala
  • ✅ Testes antes do lançamento oficial

Configurar TestFlight​

Passo 1: Preparar o Build​

# Via Fastlane (recomendado)
bundle exec fastlane ios beta

# Ou manualmente no Xcode
# Product → Archive → Distribute App → TestFlight

Passo 2: Upload para App Store Connect​

Opções de Upload:

MétodoFerramentaUso
XcodeXcode OrganizerUpload manual
TransporterApp TransporterUpload offline
FastlanedeliverAutomação
Xcode CloudCI/CD integradoAutomação Apple

Via Xcode:

1. Window → Organizer
2. Selecionar o arquivo
3. Distribute App → App Store Connect
4. Upload
5. Aguardar processamento (5-30 min)

Via Fastlane:

# ios/fastlane/Fastfile
lane :beta do
build_app(
scheme: "YourApp",
export_method: "app-store"
)
upload_to_testflight(
skip_waiting_for_build_processing: false
)
end

Passo 3: Configurar Testadores Internos​

1. App Store Connect → TestFlight
2. Grupo Padrão: App Store Connect Users
3. Builds → Selecionar build
4. Habilitar para testadores internos
5. Testadores recebem notificação automática

Passo 4: Configurar Testadores Externos​

Criar Grupo de Testadores:

1. TestFlight → Testadores Externos
2. Criar Grupo (ex: "Beta Público")
3. Adicionar testadores:
- Manualmente por e-mail
- Ou gerar link público
4. Selecionar build para distribuir
5. Preencher informações de teste
6. Enviar para revisão da Apple

Informações de Teste:

CampoDescriçãoObrigatório
O que testarFuncionalidades a validar✅ Sim
E-mail de feedbackContato para testadores✅ Sim
Nome de usuárioPara login de testeCondicional
SenhaPara login de testeCondicional

Gerenciar Builds no TestFlight​

Adicionar Notas de Teste​

1. TestFlight → Builds → Selecionar build
2. Test Details → What to Test
3. Descrever:
- Novas funcionalidades
- Áreas para testar
- Problemas conhecidos
- Credenciais de teste (se necessário)

Template de Notas:

## Versão 5.1.550

### Novas Funcionalidades

- 🎉 Sistema de notificações push
- ✨ Novo design do catálogo

### Para Testar

- [ ] Login com suas credenciais
- [ ] Navegar pelo catálogo
- [ ] Testar notificações

### Problemas Conhecidos

- Pequeno atraso no carregamento inicial

### Credenciais de Teste

- Usuário: teste@exemplo.com
- Senha: Teste123!

Gerenciar Múltiplos Builds​

Boas Práticas:

- Máximo de 3 builds ativos por grupo
- Builds expiram após 90 dias
- Remover builds antigos regularmente
- Usar números de versão claros

Expiração de Builds​

EventoAção
90 dias após uploadBuild expira automaticamente
Antes de expirarTestadores recebem aviso
Após expirarApp para de funcionar em dispositivos de teste

Monitoramento no TestFlight​

Métricas Disponíveis​

MétricaDescriçãoLocalização
InstalaçõesQuantos testadores instalaramTestFlight → Métricas
SessõesNúmero de aberturas do appTestFlight → Métricas
CrashesRelatórios de crashesTestFlight → Crashes
FeedbackComentários dos testadoresTestFlight → Feedback
ScreenshotsCapturas de tela dos testadoresTestFlight → Feedback

Análise de Crashes​

1. TestFlight → Crashes
2. Selecionar build
3. Ver crashes agrupados
4. Baixar logs detalhados
5. Simbolizar para análise

Coletar Feedback​

Tipos de Feedback:

  • 📧 E-mail direto dos testadores
  • 📱 Screenshots anotados via app TestFlight
  • 💬 Comentários sobre funcionalidades específicas
  • 🐛 Relatórios de bugs com contexto

Produção - App Store​

Visão Geral​

A distribuição em produção disponibiliza seu aplicativo para todos os usuários da App Store. O processo envolve uma revisão rigorosa da Apple que pode levar de 24 horas a 7 dias.

Características da Produção​

CaracterísticaDetalhes
PúblicoTodos os usuários da App Store
AprovaçãoRevisão completa da Apple (1-7 dias)
VisibilidadePública na App Store
AtualizaçõesRequerem nova revisão
LançamentoManual ou automático após aprovação

Para que serve a Produção​

  • ✅ Lançamento oficial do aplicativo
  • ✅ Disponibilização pública na App Store
  • ✅ Geração de receita (se aplicável)
  • ✅ Alcance máximo de usuários
  • ✅ Posicionamento em rankings e buscas

Preparar para Produção​

1. Informações do App​

App Store Connect → Meu App → Informações do App:

SeçãoCampos Obrigatórios
LocalizaçãoNome, Subtítulo, Política de Privacidade
CategoriaPrimária e Secundária (opcional)
ClassificaçãoConteúdo e faixa etária
ContatoE-mail, telefone, URL de suporte

2. Preços e Disponibilidade​

App Store Connect → Preços e Disponibilidade

Configurar:
- Preço (ou gratuito)
- Países disponíveis
- Compras no app (se aplicável)
- Data de disponibilidade

Opções de Preço:

OpçãoDescrição
GratuitoSem custo para usuários
PagoPreço único para download
FreemiumGratuito com compras no app

3. Privacidade​

Informações de Privacidade:

App Store Connect → Privacidade do App

Declarar:
- Dados coletados
- Finalidade da coleta
- Dados vinculados ao usuário
- Dados de rastreamento

Categorias de Dados:

  • 📧 Informações de contato
  • 🏥 Dados de saúde
  • 💰 Informações financeiras
  • 📍 Localização
  • 🔍 Dados de navegação
  • 🎯 Identificadores

Criar Versão de Produção​

Passo 1: Adicionar Versão​

1. App Store Connect → Meu App
2. Distribuição → App Store
3. + Versão ou Plataforma
4. Número da versão (ex: 5.1.550)
5. Criar

Passo 2: Preencher Metadados​

Informações da Versão:

CampoDescriçãoLimites
NomeNome do app30 caracteres
SubtítuloDescrição curta30 caracteres
DescriçãoDescrição completa4.000 caracteres
Palavras-chavePara busca100 caracteres
URL de suporteLink para suporteURL válida
URL de marketingSite do app (opcional)URL válida
NovidadesChangelog da versão4.000 caracteres

Template de Descrição:

[Nome do App] - Solução completa para [propósito]

PRINCIPAIS FUNCIONALIDADES:
• Funcionalidade 1
• Funcionalidade 2
• Funcionalidade 3

BENEFÍCIOS:
✓ Benefício 1
✓ Benefício 2
✓ Benefício 3

DESTAQUES:
⭐ Destaque 1
⭐ Destaque 2

Baixe agora e [call-to-action]!

Passo 3: Adicionar Screenshots​

Tamanhos Obrigatórios:

DispositivoResoluçãoQuantidade
iPhone 6.7"1290x2796pxMínimo 1
iPhone 6.5"1242x2688pxMínimo 1
iPhone 5.5"1242x2208pxOpcional
iPad Pro 12.9"2048x2732pxMínimo 1

Boas Práticas:

  • ✅ Usar 4-5 screenshots por tamanho
  • ✅ Destacar principais funcionalidades
  • ✅ Incluir texto descritivo nas imagens
  • ✅ Manter identidade visual consistente
  • ✅ Atualizar quando UI mudar significativamente

Passo 4: Selecionar Build​

1. Na versão criada → Build
2. Selecionar build do TestFlight
3. Build deve estar aprovado para testadores externos
4. Aguardar processamento (se necessário)

Requisitos do Build:

  • ✅ Número de versão corresponde à versão da App Store
  • ✅ Aprovado para testadores externos (se foi no TestFlight)
  • ✅ Sem erros de processamento
  • ✅ Compatível com versões do iOS declaradas

Passo 5: Configurar Lançamento​

Opções de Lançamento:

OpçãoDescriçãoQuando Usar
ManualVocê controla quando publicarLançamentos coordenados
AutomáticoPublica assim que aprovadoAtualizações simples
AgendadoDefine data/hora específicaLançamentos planejados
1. Versão → Informações da Versão
2. Lançamento da Versão
3. Selecionar opção desejada

Passo 6: Enviar para Revisão​

Checklist Pré-Envio:

  • Todos os metadados preenchidos
  • Screenshots adicionados
  • Build selecionado
  • Política de privacidade atualizada
  • Informações de contato corretas
  • Classificação etária definida
  • Opção de lançamento escolhida

Enviar:

1. Revisar todas as informações
2. Salvar
3. Adicionar para Revisão
4. Enviar para a App Store
5. Aguardar aprovação

Processo de Revisão da Apple​

Linha do Tempo​

FaseDuraçãoStatus
Aguardando RevisãoVariávelFila de espera
Em Revisão24-48hApple testando
Pendente de InformaçõesIndefinidoAguardando resposta
Rejeitado-Requer correções
Aprovado-Pronto para lançamento

O que a Apple Revisa​

Áreas de Análise:

  • ✅ Funcionalidade: App funciona conforme descrito
  • ✅ Performance: Estabilidade e velocidade
  • ✅ Segurança: Proteção de dados do usuário
  • ✅ Design: Interface e experiência do usuário
  • ✅ Negócios: Compliance com políticas comerciais
  • ✅ Legal: Conformidade com leis e regulamentos

Motivos Comuns de Rejeição​

MotivoSolução
Crashes frequentesCorrigir bugs e reenviar
Funcionalidade incompletaImplementar recursos prometidos
Violação de privacidadeAtualizar política e práticas
Metadados enganososAjustar descrição e screenshots
Recursos não documentadosAdicionar à descrição
Compras não funcionaisTestar IAP em sandbox

Pós-Aprovação​

Lançamento Manual​

1. App Store Connect → Meu App
2. Status: Pronto para Venda
3. Lançar esta Versão
4. Confirmar

Lançamento Automático​

- App é publicado automaticamente após aprovação
- Sem intervenção necessária

Lançamento Gradual (Phased Release)​

Como Funciona:

  • Distribuição gradual ao longo de 7 dias
  • Automaticamente gerenciado pela Apple
  • Possibilidade de pausar se problemas forem detectados

Cronograma Padrão:

DiaPorcentagem
11%
22%
35%
410%
520%
650%
7100%

Habilitar:

1. Versão → Lançamento Gradual Automático
2. Ativar para esta versão
3. Salvar

Monitoramento Pós-Lançamento​

App Analytics​

Métricas Disponíveis:

MétricaDescrição
ImpressõesVisualizações na App Store
ConversãoTaxa de download
InstalaçõesQuantidade de downloads
SessõesUso do aplicativo
RetençãoUsuários que retornam
CrashesTaxa de falhas

Acessar:

App Store Connect → Analytics
- Visão geral
- Métricas do app
- Fontes de aquisição
- Uso
- Retenção

Avaliações e Comentários​

Gerenciar Feedback:

1. App Store Connect → Avaliações e Comentários
2. Ler avaliações
3. Responder (recomendado)
4. Reportar avaliações inadequadas

Boas Práticas:

  • ✅ Responder avaliações negativas educadamente
  • ✅ Agradecer feedback positivo
  • ✅ Oferecer suporte em avaliações com problemas
  • ✅ Monitorar tendências de feedback

Comparação TestFlight vs Produção​

CaracterísticaTestFlightProdução
PúblicoAté 10.000 testadoresIlimitado
Aprovação1-2 dias (externos)1-7 dias
Duração90 diasPermanente
AtualizaçõesIlimitadasRequer nova revisão
FeedbackIntegrado no appAvaliações da App Store
CustoIncluídoIncluído
VisibilidadePrivado ou por convitePública
MétricasBásicasCompletas (Analytics)

Automação com Fastlane​

Configuração Completa​

# ios/fastlane/Fastfile

default_platform(:ios)

platform :ios do

# Lane para TestFlight
lane :beta do
# Incrementar build number
increment_build_number(xcodeproj: "YourApp.xcodeproj")

# Build do app
build_app(
scheme: "YourApp",
export_method: "app-store",
export_options: {
provisioningProfiles: {
"com.yourcompany.yourapp" => "YourApp AppStore"
}
}
)

# Upload para TestFlight
upload_to_testflight(
skip_waiting_for_build_processing: false,
notify_external_testers: true,
changelog: "Bug fixes and improvements"
)
end

# Lane para Produção
lane :release do
# Incrementar versão
increment_version_number(
bump_type: "patch" # ou "minor" ou "major"
)

# Build
build_app(
scheme: "YourApp",
export_method: "app-store"
)

# Upload para App Store
upload_to_app_store(
force: true,
skip_metadata: false,
skip_screenshots: true,
submit_for_review: true,
automatic_release: false,
phased_release: true,
submission_information: {
add_id_info_uses_idfa: false
}
)
end

# Lane para screenshots
lane :screenshots do
snapshot
end

end

Executar Deploy​

# TestFlight
bundle exec fastlane ios beta

# Produção
bundle exec fastlane ios release

# Gerar screenshots
bundle exec fastlane ios screenshots

Certificados e Provisionamento​

Tipos de Certificados​

TipoUsoDuração
DevelopmentDesenvolvimento local1 ano
DistributionApp Store e TestFlight1 ano
Push NotificationNotificações push1 ano

Perfis de Provisionamento​

TipoUsoDispositivos
DevelopmentTestes locaisEspecíficos
Ad HocDistribuição limitadaAté 100
App StoreTestFlight e App StoreIlimitados

Gerenciar com Fastlane Match​

# Configurar Match
fastlane match init

# Criar certificados
fastlane match appstore
fastlane match development

# Renovar certificados
fastlane match nuke distribution
fastlane match appstore

Solução de Problemas​

TestFlight​

Build não aparece​

Causas comuns:
- Ainda processando (aguardar 5-30 min)
- Erro de processamento
- Número de versão duplicado

Solução:
1. Verificar e-mails da Apple
2. Xcode Organizer → Verificar status
3. Incrementar build number e reenviar

Testadores não recebem convite​

Verificar:
- E-mail correto
- Build habilitado para o grupo
- Verificar spam
- Limite de testadores não atingido

Solução:
1. Reenviar convite
2. Usar link público alternativo
3. Verificar status do grupo

App Store​

Rejeição por Guideline 2.1 (Bugs)​

Problema: App crasha ou tem bugs críticos

Solução:
1. Corrigir todos os bugs
2. Testar extensivamente
3. Providenciar vídeo demonstrando funcionamento
4. Reenviar para revisão

Rejeição por Guideline 5.1.1 (Privacidade)​

Problema: Política de privacidade inadequada

Solução:
1. Atualizar política de privacidade
2. Declarar corretamente dados coletados
3. Adicionar consentimento quando necessário
4. Reenviar para revisão

Build não disponível​

Possíveis causas:
- Build ainda processando
- Expirou (90 dias)
- Erro no upload

Solução:
1. Aguardar processamento
2. Fazer novo upload
3. Verificar logs no Xcode Organizer

Checklist de Deploy​

Pré-Deploy TestFlight​

  • Build compilado sem erros
  • Testado em dispositivos físicos
  • Certificado de distribuição válido
  • Provisioning profile atualizado
  • Build number incrementado
  • Notas de teste escritas

Pré-Deploy Produção​

  • Todos os itens de TestFlight ✓
  • Testado extensivamente via TestFlight
  • Screenshots atualizados
  • Metadados revisados
  • Política de privacidade atualizada
  • Informações de privacidade declaradas
  • Keywords otimizadas
  • Classificação etária correta

Pós-Deploy​

  • Monitorar crashes (48h)
  • Responder avaliações
  • Analisar métricas
  • Verificar taxa de conversão
  • Preparar próxima versão

Requisitos de Conteúdo​

Screenshots​

Quantidade Recomendada: 4-5 por tamanho de tela

Ordem Sugerida:

  1. Principal funcionalidade ou tela inicial
  2. Segunda funcionalidade mais importante
  3. Terceira funcionalidade
  4. Social proof ou avaliações
  5. Call-to-action ou benefício final

App Preview (Vídeo)​

EspecificaçãoValor
Duração15-30 segundos
ResoluçãoPor dispositivo
Formato.mov ou .mp4
OrientaçãoPortrait ou landscape

Políticas da Apple​

Guidelines Principais​

GuidelineDescrição
2.1Performance e bugs
2.3Metadados precisos
4.0Design e experiência
5.1Privacidade e dados

Glossário​

TermoDescrição
IPAiOS App Archive - arquivo do aplicativo iOS
TestFlightPlataforma de testes beta da Apple
Build NumberNúmero interno incremental da versão
Version NumberVersão legível (ex: 5.1.550)
Provisioning ProfilePerfil de autorização para distribuição
Bundle IDIdentificador único do app
App Store ConnectPortal de gerenciamento de apps Apple
Phased ReleaseLançamento gradual automático da Apple

Boas Práticas​

TestFlight​

  • ✅ Usar testadores internos para validação rápida
  • ✅ Enviar para testadores externos apenas versões estáveis
  • ✅ Providenciar notas de teste detalhadas
  • ✅ Responder feedback dos testadores
  • ✅ Manter no máximo 3 builds ativos
  • ✅ Remover builds antigos regularmente

Produção​

  • ✅ Testar extensivamente no TestFlight antes
  • ✅ Usar lançamento gradual para primeiras versões
  • ✅ Monitorar crashes nas primeiras 48h
  • ✅ Responder todas as avaliações
  • ✅ Manter screenshots e metadados atualizados
  • ✅ Planejar releases com antecedência (considerar tempo de revisão)

Dica Importante

Sempre teste sua build no TestFlight com testadores externos antes de enviar para produção. Isso ajuda a identificar problemas que a Apple pode encontrar durante a revisão.

Atenção

Builds no TestFlight expiram após 90 dias. Planeje seus ciclos de teste considerando essa limitação.

Informação

A Apple pode rejeitar atualizações mesmo se versões anteriores foram aprovadas. Sempre revise as guidelines antes de cada envio.