IOS 10.0运行时崩溃中的 NSCameraUsageDescription?

使用 iOS 10.0上一个测试版。我曾试图使用照相机扫描条形码在我的应用程序,它崩溃了这个运行时错误。

这个应用程序已经崩溃,因为它试图访问隐私敏感 应用程序的 Info.plist 必须包含 一个 NSCameraUsageDescription 键,其字符串值解释为 用户应用程序如何使用这些数据。

把这把钥匙放进列表里,但它还是崩溃了?

191684 次浏览

您必须在 info.plist 中添加以下键。

NSCameraUsageDescription 或者 Privacy - Camera usage description

并添加用法说明。

详细的截图可在此 链接

因为苹果已经改变了如何访问 iOS 10中的任何用户私有数据类型。

您需要添加“ Privacy - Camera usage description”键到您的应用程序的 Info.plist和他们的使用信息是适用于您的应用程序,因为在下面的例子中,我已经提供了我用来扫描条形码。

欲了解更多信息,请找到下面的截图。

enter image description here

在 iOS10之后,你必须在 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

返回文章页面家庭装备:

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

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

或者打开 Info.plist 作为源代码,并添加以下内容:

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

另一个我在使用相机时遇到的问题是,即使在添加了“相机使用说明”之后,它仍然忙于崩溃,给出相同的 _CRASHING_DUE_TO_PRIVACY。在未能从调用堆栈中获得任何有形信息后,切换到“组织者”,查看设备上的崩溃报告。我发现它实际上是抱怨由于缺少“麦克风使用说明”的隐私。我加了这个,然后去掉了这个神秘的故障。

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

Xcode 用户界面从一个版本到下一个版本有所改变,所以如果有帮助的话,这里是为9.0 beta 4更新 plist 的地方 项目-> 目标-> 资讯科技基础建设

您可以通过向应用程序的 Info.plist 添加一个用法键和一个用途字符串来实现这一点。 NSCameraUsageDescription 指定应用程序访问设备摄像头的原因

Https://developer.apple.com/library/content/documentation/general/reference/infoplistkeyreference/articles/cocoakeys.html

对于那些即使在 Info.plist 中添加了正确的键仍然得到错误信息的用户:

确保您正在将密钥添加到正确的 Info.plist 中。新版本的 xCode 显然有3个 Info.plist。

一个在你的应用程序名下的文件夹,这为我解决了问题。

第二个是在 YourappnameTests.cn 下,第三个是在 YourappnameUITests.cn 下。

希望能有帮助。

如果你正在使用 Ionic,你可以直接从 Xml解决这个问题,在平台 ios 标签中添加:

<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 的回答。

我检查了清单,发现它不工作,只有在“项目”信息,你需要添加“隐私-相机... .”,然后它应该工作。希望能帮到你。

我也有同样的问题,而且找不到解决办法。Mark90是正确的有很多 info.plist 文件,你应该编辑正确的。转到 Project,在 TARGETS 下选择项目(而不是测试) ,在标签栏中选择 Info 并在“ 自定义 iOS 目标属性”下添加权限。

对于那些像我一样正在测试一个爱奥尼亚项目,必须添加隐私权限密钥,请确保您添加他们在正确的 .plist文件。找到它的最好方法是使用 Xcode 搜索,你的应用程序名称就是其中之一。我分享了一个围绕右边的 Info.plist你需要修改圆圈截图。我在修改库文件夹中的另一个文件时浪费了时间,导致了有关隐私的错误。希望这个截图能有所帮助。在我的案例中,在文件的底部,我点击 +并滚动直到我找到 Privacy - Camera usage description,我插入简短的描述 used for Qrcodes和工作

enter image description here

我的问题通过在应用程序目标中添加一个字段得到了解决,因为这个字段不存在。

Screenshot 1 Screenshot 2