使用Expo开发构建iOS应用时expo-camera组件报错NSCameraUsageDescription缺失
解决Expo开发构建中NSCameraUsageDescription未同步到Info.plist的问题
检查app.json配置格式
确保app.json里的配置层级和键名完全正确,正确结构如下:
{ "expo": { "ios": { "infoPlist": { "NSCameraUsageDescription": "需要访问相机来拍摄照片/视频" } } // 其他项目配置... } }
注意配置必须嵌套在expo根节点下的ios→infoPlist中,键名NSCameraUsageDescription大小写敏感,不能写错。
强制清除缓存并重建native目录
手动删除ios文件夹可能不彻底,执行以下命令清除Expo缓存并重新生成native文件:
npx expo prebuild --clean
完成后再运行expo run:ios重新构建。
利用expo-camera插件自动配置
直接通过expo-camera插件配置权限,比手动写infoPlist更可靠,插件会自动同步到native配置。在app.json的plugins数组中添加:
{ "expo": { "plugins": [ [ "expo-camera", { "cameraPermission": "需要访问相机来拍摄照片/视频" } ] ] } }
添加后执行npx expo prebuild --clean再重建项目。
手动修改项目Info.plist(临时方案)
如果以上方法都无效,直接修改ios/[你的项目名称]/Info.plist(注意不是ios/expo下的中间文件),添加以下XML条目:
<key>NSCameraUsageDescription</key> <string>需要访问相机来拍摄照片/视频</string>
保存后重新运行expo run:ios即可生效。
内容的提问来源于stack exchange,提问作者Chen W
相关产品推荐
相关产品推荐

