React Native Expo集成react-native-vision-camera构建失败求助
React Native Expo构建失败(react-native-vision-camera相关)
环境版本
- react-native: 0.71.6
- expo: ~48.0.10
- react-native-vision-camera: ^2.15.4
已尝试的无效操作
- 启用Hermes
- 禁用Hermes
- 修改
node_modules/react-native-vision-camera/ios/React Utils/MakeJSIRuntime.h内容为#include <React_jsc/JSCRuntime.h>
当前构建错误
The following build commands failed: ▸ Ld /Users/expo/Library/Developer/Xcode/DerivedData/xxxx/Build/Intermediates.noindex/ArchiveIntermediates/xxxxx/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/VisionCamera.framework/VisionCamera normal (in target 'VisionCamera' from project 'Pods')
解决思路与方案
1. 对齐版本兼容性
react-native-vision-camera v2.15.4和Expo 48的适配可能存在问题。Expo 48对应React Native 0.71.x,建议查vision-camera官方文档确认适配Expo 48的稳定版本,尝试调整版本:
# 示例:降级到经社区验证适配Expo48的版本(需确认具体版本号) npm install react-native-vision-camera@2.14.0
2. 彻底清理构建缓存
缓存冲突是这类构建问题的常见诱因,执行以下操作清理:
- 清理iOS Pod依赖:
cd ios && pod deintegrate && pod cache clean --all && pod install
- 清理Expo缓存:
expo r -c
- 清理Xcode构建缓存:打开Xcode,按
Cmd+Shift+K执行Clean Build Folder
3. 检查iOS构建配置
- 打开Xcode项目,进入
VisionCameratarget的Build Settings,确认Framework Search Paths包含正确的依赖路径,Other Linker Flags添加-ObjC - 确保项目iOS部署目标版本≥13.0(vision-camera v2.x的最低要求)
4. 重新生成原生项目
使用Expo预构建工具重新生成适配的原生文件:
expo prebuild --clean
同时检查app.json中相机权限配置是否完整:
{ "ios": { "infoPlist": { "NSCameraUsageDescription": "需要访问相机完成拍摄/扫描功能" } } }
5. 修复JSIRuntime头文件引用
如果之前的头文件修改无效,尝试替换为React Native 0.71.x的正确引用路径:
将MakeJSIRuntime.h内容改为#include <ReactCommon/JSCRuntime/JSCRuntime.h>,修改后重新执行pod install并清理缓存。
内容的提问来源于stack exchange,提问作者im_94
相关产品推荐
相关产品推荐

