使用 iOS 10.0
最后一个测试版时,我尝试在我的应用程序中使用相机扫描条形码,但出现了以下运行时错误。
此应用程序因未提供使用说明而尝试访问涉及隐私的数据而崩溃。 应用程序的 Info.plist 必须包含一个 NSCameraUsageDescription 键,其字符串值必须向用户解释应用程序如何使用此数据。
已将此键放入 plist 中,但仍然崩溃?
使用 iOS 10.0
最后一个测试版时,我尝试在我的应用程序中使用相机扫描条形码,但出现了以下运行时错误。
此应用程序因未提供使用说明而尝试访问涉及隐私的数据而崩溃。 应用程序的 Info.plist 必须包含一个 NSCameraUsageDescription 键,其字符串值必须向用户解释应用程序如何使用此数据。
已将此键放入 plist 中,但仍然崩溃?
日历
Key : Privacy - Calendars Usage Description
Value : $(PRODUCT_NAME) calendar events
温馨提示:
Key : Privacy - Reminders Usage Description
Value : $(PRODUCT_NAME) reminder use
联系方式:
Key : Privacy - Contacts Usage Description
Value : $(PRODUCT_NAME) contact use
照片:
Key : Privacy - Photo Library Usage Description
Value : $(PRODUCT_NAME) photo use
蓝牙分享:
Key : Privacy - Bluetooth Peripheral Usage Description
Value : $(PRODUCT_NAME) Bluetooth Peripheral use
麦克风(也用于视频录制):
Key : Privacy - Microphone Usage Description
Value : $(PRODUCT_NAME) microphone use
相机(拍照或录像):
Key : Privacy - Camera Usage Description
Value : $(PRODUCT_NAME) camera use
位置:
Key : Privacy - Location Always Usage Description
Value : $(PRODUCT_NAME) location use
Key : Privacy - Location When In Use Usage Description
Value : $(PRODUCT_NAME) location use
希斯:
Key : Privacy - Health Share Usage Description
Value : $(PRODUCT_NAME) heath share use
Key : Privacy - Health Update Usage Description
Value : $(PRODUCT_NAME) heath update use
HomeKit:
Key : Privacy - HomeKit Usage Description
Value : $(PRODUCT_NAME) home kit use
媒体库:
Key : Privacy - Media Library Usage Description
Value : $(PRODUCT_NAME) media library use
运动:
Key : Privacy - Motion Usage Description
Value : $(PRODUCT_NAME) motion use
语音识别:
Key : Privacy - Speech Recognition Usage Description
Value : $(PRODUCT_NAME) speech use
SiriKit:
Key : Privacy - Siri Usage Description
Value : $(PRODUCT_NAME) siri use
电视供应商:
Key : Privacy - TV Provider Usage Description
Value : $(PRODUCT_NAME) tvProvider use
您可以在此链接中获取详细信息。
Privacy - Photo Library Usage Description
did it for the error NSPhotoLibraryUsageDescription
- Bruno BieriNSCameraUsageDescription
或
Privacy - Camera usage description
或者打开Info.plist作为源代码,添加以下内容:
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
"NSCameraUsageDescription" = "需要访问相机";
。 - Khurram Shehzad使用这些原始值并将其复制到Info.plist中
<key>NSCalendarsUsageDescription</key>
<string>$(PRODUCT_NAME) calendar events</string>
<key>NSRemindersUsageDescription</key>
<string>$(PRODUCT_NAME) reminder use</string>
<key>NSCameraUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires to access your microphone to record video with your voice send via chat</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires to access your photo library to show image on profile and send via chat</string>
<key>NSContactsUsageDescription</key>
<string>$(PRODUCT_NAME) contact use</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>$(PRODUCT_NAME) location use</string>
<key>NSCameraUsageDescription</key>
添加到了info.plist中。 - psantos<key>NSCameraUsageDescription</key>
添加到第二个 info.plist 文件中,但没有效果。我可以确认 XCode(10.1)绝对不会通过运行 git status 来考虑这些更改,因为我的另一个目标的 info.plist 没有任何更改。所以正确的方法是通过 Project->Target->Info 进行操作。谢谢! - bra.Scene<platform name="ios">
.
.
.
<config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
<string>photo library usage description</string>
</config-file>
<config-file target="*-Info.plist" parent="NSCameraUsageDescription">
<string>camera usage description</string>
</config-file>
.
.
.
</platform>
我也想感谢@BHUPI的答案。
对于那些即使已经在 Info.plist 中添加了正确的密钥仍然遇到错误的人:
确保将密钥添加到正确的 Info.plist 中。最新版本的 xCode 显然有 3 个 Info.plist。
一个是在您的应用程序名称文件夹下,这解决了我的问题。
第二个是在 YourappnameTests 下,第三个是在 YourappnameUITests 下。
希望能有所帮助。
在尝试使用相机时,我遇到的另一个情况是,即使添加了“相机使用说明”,它仍然忙于崩溃,并给出相同的_CRASHING_DUE_TO_PRIVACY
。在无法从调用堆栈中获得任何有意义的信息后,切换到“组织者”并查看设备上的崩溃报告。我发现它实际上是由于缺少“麦克风使用说明”而抱怨隐私问题。我添加了这个说明并摆脱了这样一个神秘的故障。
我曾经遇到同样的问题,但找不到解决方法。Mark90说得对,有很多info.plist文件,你需要编辑正确的那一个。进入项目,在TARGETS下选择项目(而不是测试),在选项卡中选择Info,并在“Custom iOS Target Properties”下添加权限。