Habilidad de lanzamiento EAS
Pasos de compilación, envío y OTA con guardrails - una Habilidad de agente estilo libro de recetas para enviar binarios de Expo SDK 57 y actualizaciones sin automatización insegura.
Busca en todas las páginas de la documentación
Pasos de compilación, envío y OTA con guardrails - una Habilidad de agente estilo libro de recetas para enviar binarios de Expo SDK 57 y actualizaciones sin automatización insegura.
Produce un plan de lanzamiento ejecutable: selección de perfiles eas.json, comandos de compilación en la nube, pasos de envío a tienda, y eas update opcional - cada uno controlado por runtimeVersion, credenciales y clasificación de cambios.
eas.json--auto-submit o envío CI no interactivorelease/*| Entrada | Por qué |
|---|---|
eas.json | Perfiles, env, objetivos de envío |
app.config.ts | version, runtimeVersion, bundle IDs |
| Lista de cambios | Solo JavaScript vs nativo (módulos, permisos, plugins) |
| Canal/rama destino | production, preview, etc. |
Último updateId conocido bueno | Anclaje de reversión para ruta OTA |
| Alcance de plataforma | ios, android, all |
--non-interactiveeas build:list, eas submit, eas channel:view, npx expo-doctoreas build. Nuevo módulo expo-*, permiso, config plugin, o edición de expo-build-properties nunca es solo OTA.runtimeVersion debe coincidir con binarios de tienda en vivo para OTA - ver Runtime Version Policy..env comprometidos (Build Profiles & Flavors).npx expo-doctor después de cualquier cambio de dependencia o plugin generado por habilidad.Tarjeta de referencia rápida - lista para copiar-pegar.
# 1. Clasificar cambio
npx expo-doctor
git diff --name-only HEAD~1 # escanear package.json, app.config.ts, plugins/
# 2. Compilación en la nube (con forma de tienda)
eas build --profile production --platform all --non-interactive
# 3. Enviar artefactos más recientes
eas submit --platform ios --latest --non-interactive
eas submit --platform android --latest --non-interactive
# 4. Hotfix solo JavaScript (mismo runtimeVersion)
eas update --channel production --message "fix: checkout validation copy"
# 5. Verificar
eas channel:view production
eas build:list --limit 3// eas.json (excerpt - SDK 57)
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal",
"channel": "preview"
},
"production": {
"channel": "production",
"autoIncrement": true
}
},
"submit": {
"production": {
"ios": { "ascAppId": "1234567890" },
"android": {
"serviceAccountKeyPath": "./secrets/play-service-account.json",
"track": "internal"
}
}
}
}Cuándo usar esta habilidad:
npx expo-doctor| Señal | Ruta |
|---|---|
Solo .tsx, hooks, copy | Candidata OTA |
package.json nuevo expo-camera | Build requerido |
app.config.ts plugin agregado | Build requerido |
| Hermes / RN version bump | Build requerido + revisión de runtimeVersion |
eas build --profile production --platform all
# CI one-shot:
eas build --profile production --platform ios --auto-submit --non-interactivedevelopmentClient: true → cliente dev, no tienda - EAS Build Basicseas submit --platform ios --latest
eas submit --platform android --latesttrack: "internal" en eas.json - promover en Play Console despuéseas update --channel production --message "fix: cart total rounding"
eas channel:view productionupdateId publicado en ticket de lanzamiento - Rollback Runbooknpx expo-doctor
eas build:list --limit 1
eas update:list --branch production --limit 3Invocar habilidad EAS Release. SDK 57.
Cambio: typo fijo en pantalla de Configuración - sin diff de package.json.
Dar comandos OTA para canal de producción. Incluir nota de reversión con último updateId bueno f7a2.Invocar habilidad EAS Release.
Agregado expo-notifications + config plugin en app.config.ts.
Producir checklist completo de compilación + envío para perfiles de producción ios y android.
Marcar cualquier cosa que bloquee OTA.Invocar habilidad EAS Release para CI.
Necesito eas build --auto-submit no interactivo en merge a release/2.4.
Listar secretos EAS requeridos y solo bloque eas.json submit. ┌─────────────────┐
│ Cambio aterrizó│
└────────┬────────┘
│
┌────────▼────────┐
│ expo-doctor OK? │──no──► corregir config/deps primero
└────────┬────────┘
│ yes
┌────────▼────────────────┐
│ Cambio impactante nativo?│
└────────┬────────────────┘
yes │ │ no
┌──────────────┘ └──────────────┐
▼ ▼
eas build + submit ¿runtimeVersion
(nuevo binario) coincide con tienda?
│
yes ──► eas update
no ──► eas build (bump runtimeVersion)Técnicamente sí vía track: "production" - guardrail: por defecto internal hasta que QA firme. La habilidad debe advertir cuando se solicita pista de producción.
No - carga el binario. La distribución de TestFlight y App Review siguen siendo pasos de consola a menos que tu workflow promocione separadamente.
Detente. La salida de la habilidad no debe incluir submit/OTA hasta que doctor pase. Corregir sesgo con npx expo install --fix per SDK Upgrade Skill.
Versiones de stack: Esta página fue escrita para React 19.2.3, React Native 0.86.0, y Expo SDK 57 (
expo~57.0.4).
Revisado por Chris St. John·Última actualización: 16 jul 2026