添加Privacy - Camera Usage Description后App仍因相机权限崩溃的问题
我之前也踩过完全一样的坑!明明在Info.plist里加了相机权限描述,结果运行还是崩溃,给你梳理几个最可能的原因和解决办法:
键名拼写/对应错误
你提到添加的是Privacy - Camera Usage Description,这其实是Xcode显示的友好名称,系统真正识别的键名是NSCameraUsageDescription。如果是手动输入键名(而非通过Xcode的下拉选项添加),很容易误把友好名称当成实际键名填写——系统根本不认这个带空格的名称!
验证方法:右键Info.plist选择Open As > Source Code,搜索NSCameraUsageDescription,确认这个键存在且对应的值是你设置的“Use camera to display ARKit content.”。修改了错误的Info.plist文件
如果你的项目有多个target(比如主App、扩展、测试target),或者存在多个Info.plist文件,很可能你修改的不是当前运行target对应的那一个。
检查方式:选中项目target,进入Build Settings,搜索Info.plist File,确认路径指向的是你修改的那个文件。Xcode缓存导致修改未生效
Xcode的缓存有时候会“顽固”地保留旧的Info.plist配置,导致新的权限描述没被打包进去。试试这几步:- 按下
Cmd+Shift+K清理Build Folder - 打开
Window > Organizer > Projects,选中你的项目,点击Delete Derived Data - 重启Xcode后重新编译运行
- 按下
本地化缺失导致的问题
如果你的项目启用了多语言本地化,Info.plist里的权限描述需要在所有本地化语言的条目里都存在。比如你只在英文本地化里填了描述,但设备是中文环境,就可能触发崩溃。
检查方法:在Xcode中打开Info.plist,查看每个语言列(比如English、Chinese)里的Privacy - Camera Usage Description都有对应的文本内容。
按照这几个步骤排查,大概率能解决问题!
内容的提问来源于stack exchange,提问作者raheem

