2017-10-11 70 views
4

我遇到下面的错误(iOS版11):什么是“应用程序的Info.plist必须包含NSPhotoLibraryAddUsageDescription”的崩溃?

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

注意的是,虽然应用的info.plist不包含NSPhotoLibraryUsageDescription它仍然崩溃,为什么呢?

+0

你为什么问问题然后如果你知道答案? –

+0

@VarunNaharia,因为我认为它可能对面临这次崩溃的任何人都有用。 https://meta.stackoverflow.com/questions/314165/how-to-ask-and-self-answer-a-correct-high-quality-qa-pair-without-attracting-d它是合法的:) –

+0

有在那里你可以回答https:// stackoverflow。com/questions/46566972/request-nsphotolibraryaddusagedescription-permission https://stackoverflow.com/questions/46344159/whats-difference-between-nsphotolibraryaddusagedescription-and-nsphotolibraryus –

回答

12

请注意,虽然应用程序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

“NSPhotoLibraryUsageDescription”的Apple文档具体声明它既可以读写,也可以写入:“虽然这个键管理用户照片库的读写权限**,但如果您的应用程序只需要将资源添加到库中,并且无需使用NSPhotoLibraryAddUsageDescription,则最好使用NSPhotoLibraryAddUsageDescription读取任何资产“。我不知道这是否仅仅是文档中的错误,或者Apple是否有意将”NSPhotoLibraryUsageDescription“的行为更改为b e只读。 – Cutterpillow

+0

@Cutterpillow我认为你的第二个假设是正确的。 –

相关问题