什么是“应用程序的Info.plist必须包含NSPhotoLibraryAddUsageDescription”的崩溃?

时间:2017-10-11 06:36:11

标签: ios permissions ios11

我遇到以下错误(iOS 11):

  

此应用已崩溃,因为它试图访问隐私敏感   没有使用说明的数据。应用程序的Info.plist必须包含   带有字符串值的NSPhotoLibraryAddUsageDescription键   向用户解释应用程序如何使用此数据。

请注意,虽然应用程序 info.plist 确实包含NSPhotoLibraryUsageDescription,但它仍会崩溃,为什么?

2 个答案:

答案 0 :(得分:50)

  

请注意,虽然应用程序info.plist确实包含   NSPhotoLibraryUsageDescription它仍然崩溃,为什么?

我认为在比较NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescription时存在误解,如Information Property List Key Reference中所述:

NSPhotoLibraryUsageDescription:

  

此键可让您描述应用访问用户的原因   照片库。当系统提示用户允许访问时,这个   字符串显示为警报的一部分。

这与让应用能够访问(获取)设备照片库有关。

NSPhotoLibraryAddUsageDescription:

  

此密钥可让您描述应用寻找只读访问权限的原因   到用户的照片库。当系统提示用户允许时   访问时,此字符串将显示为警报的一部分。

这与让应用能够(添加)照片到设备照片库有关。


显然,要解决此崩溃问题,您必须将NSPhotoLibraryAddUsageDescription添加到应用程序的plist文件中:

<key>NSPhotoLibraryAddUsageDescription</key>
<string>Our application needs permission to write photos...</string>

作为属性列表视图:

enter image description here

答案 1 :(得分:0)

以上答案中有一个错字。正确的plist条目应如下所示

<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs permission to access photos on your device</string>