使用iOS 10.0
上一个Beta。我曾尝试使用Camera扫描应用程序中的条形码,但由于运行时错误而崩溃。
该应用已崩溃,因为它尝试访问没有使用说明的隐私敏感数据。应用程序的Info.plist必须包含NSCameraUsageDescription键,该键具有字符串值,该字符串值向用户说明应用程序如何使用此数据。
将此密钥放入plist,但仍然崩溃?
使用iOS 10.0
上一个Beta。我曾尝试使用Camera扫描应用程序中的条形码,但由于运行时错误而崩溃。
该应用已崩溃,因为它尝试访问没有使用说明的隐私敏感数据。应用程序的Info.plist必须包含NSCameraUsageDescription键,该键具有字符串值,该字符串值向用户说明应用程序如何使用此数据。
将此密钥放入plist,但仍然崩溃?
Answers:
在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
您可以在此链接中获取详细信息。
Privacy - Photo Library Usage Description
是为错误做的NSPhotoLibraryUsageDescription
随着Apple的改变,您可以访问中的任何用户私有数据类型iOS 10
。
您需要Privacy - Camera usage description
在应用程序Info.plist
及其应用信息中添加“ ”键,该信息适用于您的应用程序,如下面的示例(我已经提供过用于扫描条形码的示例)所示。
有关更多信息,请找到以下屏幕截图。
或者,打开Info.plist作为源代码并添加以下代码:
<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>
"NSCameraUsageDescription" = "Requires access to the camera";
本地化的infoPlist.strings文件
使用这些原始值并复制到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,但我在XCode 9.2上也遇到了同样的问题。
<key>NSCameraUsageDescription</key>
到第二个info.plist文件中,但是没有任何效果,并且我可以通过运行git status来确认XCode(10.1)绝对没有考虑这些更改,因为我的另一个目标的info.plist没有任何更改。因此正确的方法是浏览Project-> Target-> Info。谢啦!
如果您使用的是Ionic,则可以通过在平台ios标签内添加直接从config.xml中解决它:
<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中添加用法键以及目的字符串。NSCameraUsageDescription指定您的应用访问设备摄像头的原因
我有同样的问题,找不到解决方案。Mark90是正确的,有很多info.plist文件,您应该编辑正确的文件。转到“项目”,在“目标”下选择项目(而不是测试),在选项卡栏中选择“信息”,然后在“ 自定义iOS目标属性 ” 下添加权限。