Publicação de apps Android e iOS com React Native

Today

Problema

Build que passa no emulador e falha na loja por permissões não declaradas, versionCode esquecido ou política de privacidade genérica. Time sem runbook perde dias em “rejected”.

Solução

Padronizar pipelines de release (EAS ou nativo), variáveis por ambiente (APP_ENV), versionamento automático de build e checklist legal (LGPD/GDPR quando aplicável). Separar internal testing de production track.

Arquitetura

main → CI (lint/test) → preview build (PR)
tag v* → EAS Build (profile production) → submit automático ou manual

Código

// eas.json (conceito)
{
  "build": {
    "production": {
      "channel": "production",
      "env": { "APP_ENV": "production" }
    }
  },
  "submit": {
    "production": {}
  }
}

Documente app.config.ts com campos obrigatórios de privacy manifest (iOS) e usesCleartextTraffic apenas se inevitável.

Performance

Builds com cache de dependências; imagens e assets grandes fora do bundle principal quando possível; Hermes em produção.

Melhorias futuras

Staged rollout; feature flags remotas; crash reporting com símbolos (dSYM/source maps).

Conclusão

Publicar app é produto + compliance + pipeline. Poucos devs documentam isso bem — daí o valor no portfólio.