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