Mejores prácticas de Prebuild
Un resumen condensado de las 25 mejores prácticas más importantes extraídas de cada página en CNG y Prebuild - nunca edites manualmente archivos generados que no puedas reproducir.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 mejores prácticas más importantes extraídas de cada página en CNG y Prebuild - nunca edites manualmente archivos generados que no puedas reproducir.
Trata CNG como el predeterminado en SDK 57: Mantén app.config.ts, config plugins y modules/ - no carpetas ios/ y android/ editadas manualmente.
Gitignore directorios nativos: Agrega ios/ y android/ a .gitignore a menos que un ADR de brownfield requiera explícitamente proyectos nativos comprometidos.
Entiende el predeterminado de regeneración limpia: npx expo prebuild elimina carpetas nativas existentes antes de generar - pasa --no-clean solo durante trabajo de migración controlado.
Nunca edites archivos generados que no puedas reproducir: Si un cambio no está en config o un plugin, se perderá en el siguiente prebuild limpio.
Expresa permisos en plugins: NSCameraUsageDescription, permisos de Android y entitlements pertenecen al array plugins - no a ediciones post-prebuild en Xcode.
Escribe config plugins idempotentes: Ejecutar prebuild dos veces no debe duplicar entradas de manifest o líneas Gradle apply - comprobaciones de existencia antes de cada adición.
Documenta el orden del plugin en app.config.ts: Múltiples plugins tocando el mismo archivo nativo dependen del orden de ejecución - comenta la razón.
Prefiere library config plugins: expo-camera, expo-notifications y Expo modules envían plugins mantenidos SDK 57 - no los reinventes.
Usa npx expo install para dependencias nativas: npm install manual puede jalar versiones JS incompatibles con binarios nativos SDK 57.
Ejecuta expo-doctor antes de prebuild: Detecta config inválida y desalineación de versiones antes de desperdiciar un ciclo de compilación en EAS o localmente.
Usa npx expo config --type introspect mientras desarrollas plugins: Inspecciona resultados de mod sin generación nativa completa en cada guardado.
Porta diffs nativos de brownfield a plugins antes de cambio: Inventaría cada cambio de Xcode/Gradle vs prebuild fresco - hoja de cálculo con propietarios por fila.
Comprueba modules/ para código nativo personalizado: Los módulos Expo locales son fuente de verdad; ios/MyApp/ generado es efímero bajo CNG.
Usa expo run:ios / expo run:android para iteración nativa local: Envuelve prebuild + compilación - reconstruye después de cambios Swift/Kotlin; Fast Refresh no actualiza código nativo.
Reconstruye clientes dev después de bumps SDK: expo-dev-client incrusta runtime nativo - OTA no puede actualizarlo después de un cambio SDK o dependencia nativa.
Elimina carpetas nativas obsoletas en actualización: Después de npx expo install --fix en un nuevo SDK, rm -rf ios android antes de prebuild - plantillas antiguas apuntan a la versión anterior de RN.
Actualiza SDKs secuencialmente: Un SDK por PR - plantillas de prebuild y APIs de plugin cambian por lanzamiento; saltar versiones compone dolor.
Comprueba lockfiles con cada cambio que afecta nativo: CI, EAS y hashes de fingerprint deben resolver el mismo árbol de dependencias que dev local.
Adopta puertas de fingerprint en CI: @expo/fingerprint detecta cuándo se requiere una nueva compilación nativa - no envíes OTA a binarios incompatibles.
Usa runtimeVersion.policy: "fingerprint" para CNG OTA: Vincula elegibilidad de actualización a inputs nativos, no solo semver cuando plugins cambian entre lanzamientos de tienda.
Deja que EAS Build ejecute prebuild en CI: Sube config + JS - no carpetas nativas generadas - a menos que migración de brownfield esté incompleta.
Mapea perfiles eas.json a entornos: development, preview y production deben alinear credenciales y vars de entorno con fingerprint y trabajos de compilación.
Prueba de humo en dispositivo físico después de fusiones de plugin: Los simuladores pierden entitlements push, App Links y problemas de firma que prebuild solo no puede detectar.
Empareja trabajo nativo con Native Module Rules: Busca paquetes Expo SDK y config plugins antes de escribir Swift/Kotlin - los módulos personalizados necesitan ADRs y propietarios.
Programa migración brownfield CNG antes del siguiente SDK mayor: El costo de fusión nativa manual crece cada lanzamiento - cambia cuando la hoja de cálculo de auditoría esté completa y el prebuild limpio pase.
eas update.eas build para clientes de producción y desarrollo.app.config.tsnpx expo config --type introspectnpx expo prebuild --no-install dos veces - cero diff en segunda ejecuciónexpo run:ios o compilación de desarrollo EAS para prueba de dispositivoVersiones 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