我遇到以下错误(iOS 11):
此应用已崩溃,因为它试图访问隐私敏感 没有使用说明的数据。应用程序的Info.plist必须包含 带有字符串值的
NSPhotoLibraryAddUsageDescription
键 向用户解释应用程序如何使用此数据。
请注意,虽然应用程序 info.plist 确实包含NSPhotoLibraryUsageDescription
,但它仍会崩溃,为什么?
答案 0 :(得分:50)
请注意,虽然应用程序info.plist确实包含
NSPhotoLibraryUsageDescription
它仍然崩溃,为什么?
我认为在比较NSPhotoLibraryUsageDescription
和NSPhotoLibraryAddUsageDescription
时存在误解,如Information Property List Key Reference中所述:
NSPhotoLibraryUsageDescription:
此键可让您描述应用访问用户的原因 照片库。当系统提示用户允许访问时,这个 字符串显示为警报的一部分。
这与让应用能够访问(获取)设备照片库有关。
NSPhotoLibraryAddUsageDescription:
此密钥可让您描述应用寻找只读访问权限的原因 到用户的照片库。当系统提示用户允许时 访问时,此字符串将显示为警报的一部分。
这与让应用能够写(添加)照片到设备照片库有关。
显然,要解决此崩溃问题,您必须将NSPhotoLibraryAddUsageDescription
添加到应用程序的plist文件中:
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Our application needs permission to write photos...</string>
作为属性列表视图:
答案 1 :(得分:0)
以上答案中有一个错字。正确的plist条目应如下所示
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) needs permission to access photos on your device</string>