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.