Что такое авария "Приложение Info.plist должно содержать NSPhotoLibraryAddUsageDescription"?

Я столкнулся со следующей ошибкой (iOS 11):

Это приложение потерпело крах, поскольку оно попыталось получить доступ к конфиденциальным данным без описания использования. Приложение Info.plist должно содержать ключ NSPhotoLibraryAddUsageDescription со строковым значением, объясняющим пользователю, как приложение использует эти данные.

Обратите внимание, что хотя приложение info.plist содержит NSPhotoLibraryUsageDescription оно все равно падает, почему?

Ответ 1

Обратите внимание, что хотя приложение info.plist содержит NSPhotoLibraryUsageDescription оно все равно падает, почему?

Я думаю, что есть недоразумение при сравнении NSPhotoLibraryUsageDescription и NSPhotoLibraryAddUsageDescription, как NSPhotoLibraryAddUsageDescription в справочной информации по списку свойств информации:

NSPhotoLibraryUsageDescription:

Этот ключ позволяет описать причину, по которой ваше приложение обращается к библиотеке фотографий пользователей. Когда система предложит пользователю разрешить доступ, эта строка отображается как часть предупреждения.

Это связано с тем, что приложение может иметь доступ к (получить) библиотеку фотографий устройства.

NSPhotoLibraryAddUsageDescription:

Этот ключ позволяет описать причину, по которой ваше приложение ищет доступ только для записи в библиотеку фотографий пользователей. Когда система предложит пользователю разрешить доступ, эта строка отображается как часть предупреждения.

Это связано с тем, что приложение сможет записывать (добавлять) фотографии в библиотеку фотографий устройства.


Очевидно, чтобы решить эту проблему, вы должны добавить NSPhotoLibraryAddUsageDescription в файл NSPhotoLibraryAddUsageDescription приложения:

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

Как вид списка свойств:

enter image description here

Ответ 2

В приведенном выше ответе есть опечатка. Правильная запись должна быть следующей

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