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-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9", "expo-status-bar": "~3.0.9",
"expo-web-browser": "~15.0.10", "expo-web-browser": "~15.0.10",
"react": "19.1.0", "react": "19.2.4",
"react-native": "0.81.5", "react-native": "0.81.5",
"react-native-safe-area-context": "5.6.0", "react-native-safe-area-context": "5.6.0",
"react-native-screens": "4.16.0" "react-native-screens": "4.16.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.0", "@babel/core": "^7.24.0",
"@types/react": "~19.1.10", "@types/react": "~19.2.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-expo": "~10.0.0", "eslint-config-expo": "~10.0.0",
"typescript": "^5.3.0" "typescript": "^5.3.0"
@@ -10816,9 +10816,8 @@
} }
}, },
"node_modules/react": { "node_modules/react": {
"version": "19.1.0", "version": "19.2.4",
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz", "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz",
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=0.10.0" "node": ">=0.10.0"
+2 -2
View File
@@ -42,14 +42,14 @@
"expo-splash-screen": "~31.0.13", "expo-splash-screen": "~31.0.13",
"expo-status-bar": "~3.0.9", "expo-status-bar": "~3.0.9",
"expo-web-browser": "~15.0.10", "expo-web-browser": "~15.0.10",
"react": "19.1.0", "react": "19.2.4",
"react-native": "0.81.5", "react-native": "0.81.5",
"react-native-safe-area-context": "5.6.0", "react-native-safe-area-context": "5.6.0",
"react-native-screens": "4.16.0" "react-native-screens": "4.16.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.0", "@babel/core": "^7.24.0",
"@types/react": "~19.1.10", "@types/react": "~19.2.0",
"eslint": "^8.57.0", "eslint": "^8.57.0",
"eslint-config-expo": "~10.0.0", "eslint-config-expo": "~10.0.0",
"typescript": "^5.3.0" "typescript": "^5.3.0"
+1 -1
View File
@@ -68,7 +68,7 @@ export default function UploadScreen() {
} }
const result = await ImagePicker.launchCameraAsync({ const result = await ImagePicker.launchCameraAsync({
mediaTypes: ImagePicker.MediaTypeOptions.Images, mediaTypes: ["images"],
quality: 0.9, quality: 0.9,
allowsEditing: false, allowsEditing: false,
}); });