fix: pin the native Expo packages that arrive transitively
The app installed and then died at launch, before the splash screen, with dyld: Symbol not found: ExpoModulesCore.BaseModule.willDestroy() Referenced from: ExpoFileSystem.framework Expected in: ExpoModulesCore.framework expo-file-system was 57.0.4 here against 57.0.1 in the monorepo, with the same expo-modules-core 57.0.7 underneath. The newer file-system calls a method that patch of modules-core does not have. The gap was in how this repo was pinned. Direct dependencies were fixed to versions the monorepo proves; transitive ones were not, and expo-file-system arrives through expo, so it resolved fresh to whatever was newest. Comparing both trees found six native packages that had drifted this way — asset, dev-launcher, dev-menu, file-system, modules-autolinking, server — now pinned through overrides to the monorepo's versions. Same family as the expo-image-picker trap already written down in CLAUDE.md: a wrong Expo version typechecks, installs, and fails much later in a way that looks like a broken toolchain rather than a wrong dependency. Here it was worse than a build error — it built, signed, installed, and crashed on a phone. The crash log named it in one line. That file remains the fastest diagnostic available. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,5 +40,13 @@
|
||||
"babel-preset-expo": "57.0.4",
|
||||
"tailwindcss": "3.4.19",
|
||||
"typescript": "6.0.3"
|
||||
},
|
||||
"overrides": {
|
||||
"expo-asset": "57.0.7",
|
||||
"expo-dev-launcher": "57.0.9",
|
||||
"expo-dev-menu": "57.0.9",
|
||||
"expo-file-system": "57.0.1",
|
||||
"expo-modules-autolinking": "57.0.9",
|
||||
"expo-server": "57.0.1"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user