Tema
Como atualizar um app React Native sem passar pela loja
Atualizado em outubro de 2026.
Resposta curta: em React Native, a maior parte do app é JavaScript. Esse JavaScript (e as imagens) pode ser trocado pelo ar, com um update OTA (over-the-air): o app baixa um bundle novo e passa a usá-lo no próximo início, sem uma versão nova na App Store ou no Google Play. Mudanças em código nativo continuam indo pela loja.
O que dá para mudar pelo ar
| Pelo ar (OTA) | Só pela loja |
|---|---|
| Telas, textos, regras de negócio em JavaScript | Módulos nativos novos ou atualizados |
| Correções de bugs no JavaScript | Permissões novas (câmera, localização...) |
| Imagens e assets empacotados no bundle | Versão do React Native ou do Hermes |
| Ajustes de layout e estilos | Mudanças no Info.plist, AndroidManifest, ícone, splash |
A Apple e o Google permitem?
Sim, para código interpretado como o JavaScript, desde que o update não mude o propósito principal do app nem tente contornar a revisão. Na prática: corrigir bugs e ajustar telas pelo ar é comum e aceito. Lançar um app "diferente" por OTA não é.
Como funciona por dentro
- No build: o app nativo é instalado da loja com um bundle embutido.
- No deploy: uma CLI gera um bundle novo, assina e envia para um servidor, como uma release num canal (
production,beta...). - No aparelho: ao abrir, o SDK pergunta ao servidor se há release para aquela versão nativa e aquele canal. Se houver, baixa em segundo plano.
- No próximo início, o app abre com o bundle novo. Se ele crashar ao abrir, o SDK volta sozinho para o anterior.
As peças que você precisa
- Um SDK no app. O hot-updater é open source e é o mais usado hoje depois do fim do CodePush.
- Um servidor que guarda os bundles, decide quem recebe cada release e entrega os arquivos. Dá para hospedar por conta própria (Cloudflare, AWS, Supabase, Firebase) ou usar um serviço gerenciado.
- Assinatura dos bundles (recomendado), para o app só aceitar updates publicados por você.
Publicando o primeiro update com o Pipa no Ar
O Pipa no Ar é o servidor gerenciado para o hot-updater: você usa o SDK e a CLI oficiais, e nós cuidamos de servidor, armazenamento, assinatura e painel.
sh
npx @pipanoar/initO comando instala os pacotes, cria o hot-updater.config.ts e envolve o app com o HotUpdater. Depois:
sh
npx hot-updater deploy -p ios -r 10 # 10% dos aparelhosO passo a passo completo, incluindo a parte nativa, está no guia rápido.
Boas práticas
- Nunca publique para 100% de uma vez. Comece com 5% a 10% e aumente com os números na mão. Ver rollout progressivo.
- Ligue a assinatura de bundles. Assim um token vazado não basta para publicar no seu app. Ver assinatura.
- Use canais. Teste no
betae promova a mesma release paraproduction. - Tenha um rollback de um clique. No Pipa no Ar, desativar a release devolve os aparelhos para a anterior na próxima checagem.
Perguntas frequentes
Precisa de Expo? Não. Funciona em React Native puro (bare) e em Expo com prebuild. O Expo Go não carrega bundles externos.
Quanto custa? O hot-updater é grátis se você hospedar. O Pipa no Ar tem um plano grátis com 10 mil entregas por mês; os planos pagos começam em R$ 99. Ver planos.
E se o update quebrar o app? O SDK descarta um bundle que crasha ao abrir. Para o resto, desative a release; com o rollout automático, o Pipa no Ar faz isso sozinho quando a taxa de crash passa do limite.