fix(mobile): fix iOS TurboModule crash and npm install peer dep conflict

- UploadScreen.tsx: replace deprecated ImagePicker.MediaTypeOptions.Images
  with new array syntax ['images'] — the old enum is not accepted by the
  expo-image-picker v17 TurboModule on iOS, causing SIGABRT on Thread 2
- package.json: bump react 19.1.0 → 19.2.4 so react-dom@19.2.4 (peerOptional
  of @expo/metro-runtime) no longer conflicts; update @types/react to ~19.2.0
- package-lock.json: update react entry to 19.2.4 (integrity removed, will be
  regenerated by npm install on the next EAS build)

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-03-15 13:53:27 +00:00
parent f188e81e3a
commit f983b20a8f
3 changed files with 7 additions and 8 deletions
+4 -5
View File
@@ -33,14 +33,14 @@
"expo-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9",
"expo-web-browser": "~15.0.10",
"react": "19.1.0",
"react": "19.2.4",
"react-native": "0.81.5",
"react-native-safe-area-context": "5.6.0",
"react-native-screens": "4.16.0"
},
"devDependencies": {
"@babel/core": "^7.24.0",
"@types/react": "~19.1.10",
"@types/react": "~19.2.0",
"eslint": "^8.57.0",
"eslint-config-expo": "~10.0.0",
"typescript": "^5.3.0"
@@ -10816,9 +10816,8 @@
}
},
"node_modules/react": {
"version": "19.1.0",
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"version": "19.2.4",
"resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"license": "MIT",
"engines": {
"node": ">=0.10.0"
+2 -2
View File
@@ -42,14 +42,14 @@
"expo-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9",
"expo-web-browser": "~15.0.10",
"react": "19.1.0",
"react": "19.2.4",
"react-native": "0.81.5",
"react-native-safe-area-context": "5.6.0",
"react-native-screens": "4.16.0"
},
"devDependencies": {
"@babel/core": "^7.24.0",
"@types/react": "~19.1.10",
"@types/react": "~19.2.0",
"eslint": "^8.57.0",
"eslint-config-expo": "~10.0.0",
"typescript": "^5.3.0"
+1 -1
View File
@@ -68,7 +68,7 @@ export default function UploadScreen() {
}
const result = await ImagePicker.launchCameraAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images,
mediaTypes: ["images"],
quality: 0.9,
allowsEditing: false,
});