Índice
1. Pré-requisitos
- Mac com Xcode instalado — obrigatório para builds iOS. Não há alternativa sem usar EAS Build (Expo).
- Conta Apple Developer ativa ($99/ano).
- Node.js e React Native CLI instalados.
- CocoaPods instalado:
sudo gem install cocoapods - App cadastrado no App Store Connect com Bundle ID configurado.
2. Abrir e configurar no Xcode
Em projetos React Native, o Xcode é configurado via o workspace gerado pelo CocoaPods — não o projeto padrão:
Instalar pods e abrir o workspace
No terminal, dentro da pasta do projeto:
cd ios && pod install
Após concluir, abra o arquivo NomeDoApp.xcworkspace (não o .xcodeproj) no Xcode. Abrir o arquivo errado é o erro mais comum nessa etapa.
3. Bundle ID e App ID
No Xcode, selecione o target principal do app (não os targets de extensão ou testes). Em General → Bundle Identifier, confirme que o valor é idêntico ao App ID cadastrado no portal developer.apple.com e no App Store Connect.
Em projetos React Native, o Bundle ID geralmente está definido também no arquivo ios/[App]/Info.plist como CFBundleIdentifier. Os dois precisam coincidir.
4. Signing e certificados
Em Signing & Capabilities, ative "Automatically manage signing" e selecione o time correto (sua conta Apple Developer). O Xcode vai criar ou renovar os certificados automaticamente.
Se aparecer erro "No account for team", vá em Xcode → Settings → Accounts → "+" e adicione seu Apple ID.
5. Gerar o build de release
Antes de fazer o archive, certifique-se que o scheme está em modo Release:
- Product → Scheme → Edit Scheme → Archive → Build Configuration: Release
- O scheme selecionado na barra superior deve ser o app principal (não um framework ou test target)
- O destino deve ser "Any iOS Device (arm64)" — não um simulador
⚠️ Em React Native, builds de release usam o bundle JavaScript minificado. Se o app funciona em debug mas crasha em release, verifique as configurações de ProGuard e se todas as dependências têm regras corretas para build de produção.
6. Fazer o archive e upload
Product → Archive
Aguarde o processo de archive. Quando concluir, o Xcode Organizer abrirá automaticamente mostrando o archive gerado.
Distribute App → App Store Connect
Clique em "Distribute App" → selecione "App Store Connect" → "Upload". Mantenha as opções padrão de "Upload your app's symbols" marcada. O Xcode vai validar e fazer upload — pode levar de 2 a 10 minutos dependendo do tamanho do app.
7. Finalizar no App Store Connect
Após o upload:
- Aguarde de 15 min a 1 hora para o build aparecer no App Store Connect.
- Acesse seu app → crie uma nova versão → selecione o build → preencha "What's New".
- Confirme que screenshots, descrição e política de privacidade estão preenchidos.
- Clique em "Add for Review" e "Submit to App Review".
8. Problemas comuns
- Archive cinza no menu: o destino está como simulador. Mude para "Any iOS Device (arm64)".
- Pod install falha: tente
pod deintegrate && pod installpara reinstalar do zero. - Erro de assinatura: verifique se o Bundle ID no Xcode é idêntico ao do App Store Connect.
- App crasha em release mas não em debug: problema de ProGuard/hermes — verifique as release notes das bibliotecas que usa.
- CocoaPods version conflict: atualize o CocoaPods (
gem update cocoapods) e rodepod installnovamente.
✓ Se você usa Expo com React Native, considere o EAS Build como alternativa — ele compila na nuvem sem precisar de Mac ou configurar CocoaPods localmente. Ver nossa página sobre Como publicar app Expo.
Quer que a gente publique por você?
App Store e Google Play em até 7 dias. A partir de R$1.800.
Solicitar publicação