-
Expresa cambios nativos como plugins: Permisos, entitlements, dependencias de Gradle, y entradas de manifest pertenecen al array plugins en app.config.ts.
- Inspecciona:
npx expo config --type introspect antes de prebuild completo.
- Profundiza: Config Plugins en CNG.
-
Ejecuta prebuild dos veces para cada plugin nuevo: La segunda ejecución debe producir cero diff en salida nativa.
- Prueba:
npx expo prebuild && npx expo prebuild - git diff ios android vacío en segundo paso.
- Rechaza: Plugins de append-regex sin comprobaciones de existencia.
-
Documenta orden de plugin en comentarios: Múltiples plugins tocando Info.plist o build.gradle dependen del orden de ejecución.
- Patrón: Entitlements base primero, plugins de feature segundo, plugin de patch personalizado último.
- Debug: Bisect eliminando plugins uno a uno cuando prebuild falla.
-
Prefiere library plugins sobre ediciones manuales: expo-camera, expo-notifications, y la mayoría de módulos Expo envían plugins mantenidos.
-
Migra ediciones manuales con --no-clean temporalmente: Cuando transportas cambios de Xcode brownfield, usa --no-clean mientras desarrollas el plugin, luego verifica con limpieza completa.
- Hecho cuando: Prebuild limpio reproduce el mismo comportamiento nativo que la edición manual.
- Elimina: Patches nativos temporales una vez que el plugin llega.
-
Nunca edites archivos generados que no puedas reproducir: Si un cambio no está en config o en un plugin, se perderá en prebuild limpio.
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).