NSCameraUsageDescription在iOS 10.0运行时崩溃?

使用iOS 10.0最后testing版。 我曾尝试使用相机扫描我的应用程序中的条形码,并与此运行时错误崩溃。

这个应用程序已经崩溃,因为它试图访问隐私敏感的数据没有使用说明。 应用程序的Info.plist必须包含一个带有string值的NSCameraUsageDescription项,向用户解释应用程序如何使用此数据。

把这个钥匙插入plist,但它仍然坠毁?

在iOS 10之后,您必须定义并提供您的应用在Info.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 

你可以在这个链接中获得详细的信息。

由于苹果改变了你如何访问iOS 10任何用户私人数据types。

您需要将“ Privacy - Camera usage description ”键添加到您的应用程序的Info.plist及其应用程序的使用信息中,如以下示例所示,我已经提供了用于扫描条形码的示例。

欲了解更多信息,请查看下面的截图。

在这里输入图像说明

你必须在info.plist中添加下面的关键字。

NSCameraUsageDescriptionPrivacy - Camera usage description

并添加使用说明。

详细的截图可以在这个链接中find

或者打开Info.plist作为源代码并添加:

 <key>NSCameraUsageDescription</key> <string>Camera usage description</string> 

使用这些原始值并复制到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> 

我尝试使用相机时遇到的另一个实例是,即使在添加“相机使用说明”之后,它仍然在忙于提供相同的_CRASHING_DUE_TO_PRIVACY 。 在没有从调用堆栈中得到任何有形的东西之后,切换到“组织者”并查看设备上的崩溃报告。 我发现实际上是因为缺less“麦克风使用说明”而抱怨隐私。 我补充说,摆脱了这样一个神秘的分解。

Xcode UI已经从一个版本改变到下一个,所以这里是你更新9.0 beta 4的plist,如果有帮助Project – > Target – > Info 在这里输入图像说明