Índice
1. Visão geral
Flutter e React Native são os dois principais frameworks cross-platform para apps móveis. Ambos geram apps nativos para iOS e Android a partir de uma única base de código. Do ponto de vista da publicação nas lojas, o processo é mais similar do que diferente — mas há detalhes que impactam a experiência de quem está publicando pela primeira vez.
O que é igual para os dois: você ainda precisa de uma conta Apple Developer ($99/ano), conta Google Play ($25), Mac para builds iOS, certificados e provisioning profiles para a App Store, e o mesmo processo de revisão das lojas.
2. Comparativo rápido
| Critério de publicação | Flutter | React Native |
|---|---|---|
| Geração do IPA (iOS) | flutter build ipa | Xcode (mais configuração) |
| Geração do AAB (Android) | flutter build appbundle | react-native run-android ou Gradle |
| Configuração de signing iOS | Via Xcode ou fastlane | Via Xcode ou fastlane |
| Gerenciamento de dependências nativas | Mais simples (plugins pub.dev) | Mais complexo (CocoaPods, Gradle) |
| Problemas de build por atualizações | Moderado | Alto (quebrando entre versões) |
| Suporte a Expo | Não | Sim (simplifica muito) |
| Ferramentas de CI/CD | Codemagic, fastlane | Bitrise, fastlane, Expo EAS |
3. Flutter — publicação na App Store
Para publicar um app Flutter na App Store, o processo é:
- Ter conta Apple Developer ativa.
- Abrir o projeto iOS gerado pelo Flutter no Xcode (pasta
ios/). - Configurar signing no Xcode (automático ou manual).
- Rodar
flutter build ipa --releasepara gerar o arquivo. - Usar o Xcode ou o Transporter para fazer upload ao App Store Connect.
O Flutter facilita a geração do build com o comando de linha, mas a configuração inicial do Xcode (Bundle ID, certificados, entitlements) é idêntica à de qualquer app iOS nativo.
✓ O Codemagic é uma ferramenta de CI/CD criada especificamente para Flutter que automatiza todo o processo de build e upload — ideal se você planeja fazer múltiplos lançamentos.
4. Flutter — publicação no Google Play
Para Android, Flutter é especialmente simples:
- Configurar a keystore para assinar o app (
android/key.properties). - Rodar
flutter build appbundle --releasepara gerar o AAB. - Fazer upload do AAB no Google Play Console.
O formato AAB (Android App Bundle) é o padrão atual exigido pelo Google Play e o Flutter gera nativamente — sem etapas extras.
5. React Native — publicação na App Store
O processo de publicação iOS de um app React Native é mais manual do que o Flutter:
- Abrir o arquivo
.xcworkspace(não o.xcodeproj) no Xcode. - Garantir que o CocoaPods está instalado e as dependências foram instaladas (
pod install). - Configurar signing, versão e Bundle ID no Xcode.
- Fazer archive pelo Xcode (Product → Archive) e distribuir.
O CocoaPods é o ponto de maior atrito — versões incompatíveis entre bibliotecas nativas são uma fonte frequente de erros de build que param o processo de publicação.
⚠️ Se o projeto React Native usa muitas bibliotecas com módulos nativos (câmera, mapas, Bluetooth), espere gastar tempo resolvendo conflitos de CocoaPods antes do primeiro build de produção.
6. React Native — publicação no Google Play
Para Android, React Native também requer algumas configurações:
- Gerar e configurar a keystore para assinar o app.
- Editar
android/app/build.gradlepara incluir as configurações de signing. - Rodar
cd android && ./gradlew bundleReleasepara gerar o AAB. - Fazer upload no Play Console.
Mais etapas manuais que o Flutter, mas bem documentadas. O processo funciona bem quando todas as dependências estão alinhadas.
7. Armadilhas comuns de cada um
Principais armadilhas
Versão do Flutter SDK: builds gerados com versões muito antigas podem ser rejeitados pela Apple por usar SDKs desatualizados. Mantenha o Flutter atualizado.
Permissões no Info.plist: plugins do Flutter podem requerer permissões iOS que você precisa declarar manualmente no arquivo Info.plist. Esquecer uma gera rejeição ou crash em revisão.
Principais armadilhas
Quebras entre versões: o React Native tem histórico de breaking changes entre versões que podem inutilizar o build. Atualizar o RN antes de publicar é arriscado sem testar tudo antes.
Hermes Engine: o engine JavaScript padrão do React Native pode causar comportamentos diferentes entre debug e produção. Teste o build de release antes de submeter.
8. Expo (React Native) muda o jogo?
Sim — o Expo com o serviço EAS Build é um divisor de águas para React Native. Com o Expo, você configura o build em um arquivo JSON e o EAS gera o IPA e o AAB na nuvem, sem precisar de Mac para iOS.
Para quem está publicando pela primeira vez e usa React Native com Expo, o processo fica muito mais próximo da simplicidade do Flutter. O custo do EAS Build é de $0 a $99/mês dependendo do volume.
✓ Se você usa Expo, o EAS Build é a ferramenta mais indicada para publicação. Reduz o atrito técnico de configuração de certificados e signing para quem não tem experiência com Xcode.
9. Veredicto: qual publicar primeiro?
Do ponto de vista puramente técnico de publicação: Flutter é ligeiramente mais simples para quem está publicando pela primeira vez, especialmente pelo comando flutter build ipa que centraliza o processo. Para React Native sem Expo, há mais configuração manual envolvida.
Com Expo EAS: React Native empata ou supera Flutter em facilidade de publicação, especialmente por não exigir Mac para builds iOS.
A decisão mais importante não é o framework: é entender o processo de cada loja. O framework gera o binário — mas certificados, contas de desenvolvedor, metadados, screenshots e revisão da Apple são iguais para qualquer tecnologia.
10. Prefere delegar tudo?
Independente do framework, a AtlasTech publica apps Flutter, React Native, Expo, nativo iOS e Android, e qualquer outra tecnologia. Você entrega o código e recebe os links das lojas.
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