Publicar na Apple App Store

Certificados, ExportOptions, IPA, TestFlight — comandos copiáveis e templates baixáveis

  1. 1

    Apple Developer Program

    US$ 99/ano. Apple ID corporativa com 2FA. Aprovação D-U-N-S pode levar 1–3 dias úteis.

  2. 2

    Criar certificados, App ID e Provisioning Profile

    Distribution Certificate + App ID com bundle app.meiraisp.client + Provisioning Profile para App Store.

    • Apple Distribution Certificate (.cer instalado no Keychain)
    • App ID com bundle app.meiraisp.client
    • Provisioning Profile (App Store) vinculado ao certificado
    • APNs Auth Key (.p8) — necessária para push em iOS
  3. 3

    Conversão e validação de certificados

    Comandos úteis para converter .cer → .p12 e validar profiles. Necessário só se for usar os certs em outro Mac.

    # Converter .cer Apple para .p12 (necessário se for usar em outro Mac)
    openssl pkcs12 -export \
      -inkey private_key.pem \
      -in apple_distribution.pem \
      -out apple_distribution.p12
    
    # Verificar provisioning profile
    security cms -D -i meira_appstore.mobileprovision
  4. 4

    ExportOptions.plist com TEAM_ID

    Necessário para que o flutter build ipa saiba como assinar o IPA. Edite TEAM_ID para o seu Apple Team ID (10 chars).

    Salve em meira_app/ios/ExportOptions.plist e substitua TEAM_ID.

  5. 5

    Configurar Info.plist

    Adicione chaves de FaceID, ATT, push background e bundle. Algumas já existem — só confira e adicione as faltantes.

    Merge dentro do <dict> raiz de ios/Runner/Info.plist.

  6. 6

    Capabilities no Xcode

    Abra Runner.xcworkspace → Runner → Signing & Capabilities. Habilite:

    • Push Notifications
    • Background Modes → Remote notifications + Background fetch
    • Sign in with Apple (se for usar)
    • Automatically manage signing (recomendado)
  7. 7

    Criar app no App Store Connect

    Novo app iOS → idioma pt-BR → bundle app.meiraisp.client → SKU único.

  8. 8

    Ativos da App Store

    Capturas em todas as proporções obrigatórias.

    • iPhone 6.7" (1290×2796) — ≥3 telas
    • iPhone 6.5" (1242×2688) — ≥3 telas
    • iPad Pro 12.9" (2048×2732) — ≥3 telas (se publicar pra iPad)
    • Ícone 1024×1024 PNG sem alpha, sem cantos arredondados
    • Preview vídeo H.264 (opcional)
  9. 9

    Compilar o IPA no seu Mac

    Build assinado com Distribution Cert, modo release.

    cd meira_app
    flutter build ipa --release \
      --build-name=1.0.0 --build-number=1 \
      --export-options-plist=ios/ExportOptions.plist
    
    # Saída:
    # build/ios/ipa/meira_app.ipa
    # Submeta com Transporter (Mac App Store) ou via CLI abaixo.
  10. 10

    Upload para App Store Connect

    Use Transporter (GUI) ou xcrun altool (CLI). Processo: upload → processamento Apple (~15-30 min) → aparece em TestFlight.

    # Guarde sua senha de app-specific no Keychain primeiro:
    # xcrun altool --store-password-in-keychain-item AC_PASSWORD \
    #   -u apple-id@meiraisp.app -p <app-specific-password>
    
    xcrun altool --upload-app \
      -f build/ios/ipa/meira_app.ipa \
      -t ios \
      -u apple-id@meiraisp.app \
      -p @keychain:AC_PASSWORD
  11. 11

    Privacy Nutrition Label + ATT

    No App Store Connect → Privacy → preencher quais dados o app coleta. Se coletar IDFA, app DEVE mostrar prompt ATT na primeira execução.

  12. 12

    TestFlight → revisão Apple → produção

    TestFlight interno (até 100 testers do time) → externo (até 10k). Revisão Apple: 24–48h em média, pode levar até 7 dias.

Identificação do app

Configuração base

Bundle IDapp.meiraisp.client
Nome de exibiçãoMeira ISP
Versão1.0.0 (1)
iOS mínimo15.0
CategoriaNegócios
Trilha sugeridaTestFlight

Atalhos rápidos

Baixar tudo de uma vez

Pré-revisão

Antes de submeter à Apple

  • · Privacy Nutrition Label completo
  • · Test account funcional (login demo)
  • · Screenshots em todas as proporções
  • · Push notifications funcionando em TestFlight
  • · FaceID com mensagem clara
  • · Sem crash em iPhone 15 / iOS 17