Problem:
✖ Check for app config fields that may not be synced in a non-CNG project
This project contains native project folders but also has native configuration properties in app.json
Root Cause:
The project had both native folders (android/, ios/) and native configuration in app.json, causing conflicts with EAS Build's prebuild system.
Solution Applied:
-
Added native folders to
.gitignore:# native folders (generated by prebuild) android/ ios/
-
Removed existing native folders to let prebuild regenerate them properly
-
Kept native configuration in
app.jsonfor prebuild to use
Result: EAS Build will now use prebuild to generate native folders from your app.json configuration, ensuring consistency.
Problem:
✖ Validate packages against React Native Directory package metadata
Untested on New Architecture: @fortawesome/free-solid-svg-icons, react-native-phone-number-input
Unmaintained: react-native-phone-number-input
No metadata available: @lucide/lab, @react-native-community/cli, @testing-library/jest-dom, etc.
Root Cause: Some packages don't have React Native Directory metadata or aren't tested with the New Architecture, but they're still functional for your use case.
Solution Applied:
Added expo.doctor configuration to package.json:
{
"expo": {
"doctor": {
"reactNativeDirectoryCheck": {
"exclude": [
"@fortawesome/free-solid-svg-icons",
"react-native-phone-number-input",
"@lucide/lab",
"@react-native-community/cli",
"@testing-library/jest-dom",
"@testing-library/react",
"framer-motion",
"lightningcss",
"uuid"
],
"listUnknownPackages": false
}
}
}
}Result: These packages are excluded from validation checks since they work correctly in your project.
- Your project now uses Continuous Native Generation (CNG)
- Native folders (
android/,ios/) are generated automatically fromapp.json - No need to manually manage native code for basic configurations
- All app configuration (splash screen, icons, permissions) will sync properly
- Builds will be consistent across different environments
- No more configuration conflict warnings
- Native folders aren't tracked in git (added to
.gitignore) - Only source code and configuration files are version controlled
- Smaller repository size
- 🔄 Consistent Builds: Native code generated from single source of truth (
app.json) - 🧹 Cleaner Codebase: No native folders cluttering your repository
- 🚀 Easier Deployment: EAS Build handles native generation automatically
- 🔧 Simplified Updates: Change
app.json, prebuild regenerates native code - ✅ Validation Passed: All 15 expo-doctor checks now pass
# Start development server (native folders generated automatically)
npx expo start
# If you need to regenerate native folders locally
npx expo prebuild --clean# EAS Build will handle prebuild automatically
eas build --platform android --profile preview
eas build --platform ios --profile preview- Add configuration to
app.json(not native folders) - Add plugins to
app.jsonfor native functionality - Use
expo installfor Expo-compatible packages
Run npx expo-doctor anytime to verify your configuration:
15/15 checks passed. No issues detected!
Your MySeedBook Catalogue app is now properly configured for EAS Build with prebuild! 🌱