Executando verificação de segurança...
1

Pitch: Apresentando o XPO CLI — porque `app.json` quebrado às 23h não é divertido

Se você trabalha com Expo e já precisou fazer um build para produção, provavelmente conhece o ritual:

  1. Abrir o app.json manualmente
  2. Lembrar qual era a versão anterior
  3. Incrementar version, versionCode e buildNumber (nos três lugares certos, claro)
  4. Rodar o eas build
  5. Torcer
  6. Descobrir que você esqueceu de atualizar o versionCode no Android
  7. Repetir

O XPO existe para eliminar exatamente essa sequência.


O que é o XPO?

XPO é um CLI para projetos Expo que substitui os scripts frágeis de Makefile por uma ferramenta tipada, transparente e segura. Ele cuida das partes repetitivas do ciclo de release — para você focar no que importa: entregar o app.

npm install -g @xpo-cli/xpo

Ou, sem instalar nada:

npx @xpo-cli/xpo --help

O que ele faz (de verdade)

🔢 Versionamento automático

Nada de abrir o app.json na mão. O XPO gerencia version, android.versionCode e ios.buildNumber de forma interativa ou via flag:

xpo version patch   # 1.0.0 → 1.0.1
xpo version minor   # 1.0.0 → 1.1.0
xpo version major   # 1.0.0 → 2.0.0

Quer ver o que mudaria sem salvar nada? Existe flag pra isso:

xpo version patch --dry-run

🛡️ Builds com rollback automático

Antes de qualquer build, o XPO cria um app.json.xpo-backup. Se o EAS falhar no meio do caminho, o arquivo original é restaurado automaticamente.

Nada de app.json corrompido. Nada de versão errada empurrada sem querer.

🔭 Total transparência

O XPO nunca esconde o que faz. Antes de executar qualquer comando, ele te mostra exatamente o que está rodando:

→ Executando: eas build --platform android --profile production

Sem mágica. Sem comportamento oculto. Só menos boilerplate.

🚀 Modo CI/CD nativo

100% não-interativo para pipelines automatizados:

xpo build all --bump patch --profile production

O fluxo completo de um xpo build all

Para quem gosta de saber o que acontece por baixo dos panos:

#O que o XPO faz
1Lê e valida o app.json
2Pergunta o tipo de bump (patch / minor / major)
3Pergunta o perfil do eas.json
4Grava app.json.xpo-backup como snapshot de segurança
5Atualiza app.json com os novos números
6Executa eas build para Android e iOS
Sucesso → remove backup, exibe resultado
Falha → restaura o app.json original, encerra com erro

Zero lock-in

O XPO apenas chama eas e expo por baixo. Remova-o a qualquer momento — seu projeto continua 100% padrão. Sem dependências escondidas, sem formatos proprietários.


Versionamento standalone

Não quer acionar um build agora? Sem problema. O xpo version funciona de forma completamente independente — ideal para equipes com pipelines customizados que só precisam controlar a versão:

xpo version patch --app-json ../outro-projeto/app.json

Primeiros passos

# 1. Instalar o EAS CLI (pré-requisito)
npm install -g eas-cli

# 2. Instalar o XPO
npm install -g @xpo-cli/xpo

# 3. Rodar o primeiro build
xpo build all

O XPO vai te guiar pelo resto de forma interativa.


Por que isso importa?

Porque o tempo que você gasta lembrando se o versionCode é 42 ou 43 é tempo que você não está gastando construindo features. E porque um app.json corrompido às vésperas de uma release não deveria ser uma possibilidade.

O XPO resolve um problema pequeno, mas resolve com cuidado. E às vezes é exatamente isso que a gente precisa.


🤝 Isso não é uma verdade absoluta — e é aí que você entra

Criei o XPO por que resolveu o meu problema da minha forma. Funciona bem pra mim e transformei em um padrão para meus projetos, mas o ecossistema Expo é grande e cada equipe tem seu jeito de trabalhar.

Talvez você faça o bump de versão diferente. Talvez seu pipeline de CI seja mais complexo. Talvez você olhe pro código e pense "por que ele não fez assim?" — e a resposta honesta é: porque eu não pensei nisso ainda.

Se o XPO te parece útil mas falta alguma coisa, abre uma issue, manda um PR, ou deixa um comentário aqui mesmo. Projeto open source só cresce com perspectivas que não são as minhas.


Landing Page: xpo-cli
GitHub: github.com/DavidLSousa/xpo
Instalação: npm install -g @xpo-cli/xpo

Feito para o ecossistema Expo. MIT License.

Carregando publicação patrocinada...
2

Meus 2 cents,

Parabens pela iniciativa !

Eh sempre interessante acompanhar projetos reais usando tecnologia para automatizar as tarefas.

Repositorio devidamente starreado e forkeado - obrigado por compartilhar !

Saude e Sucesso !


Este post foi favoritado via extensão TABNEWS FAVORITOS