Ключ NSPhotoLibraryUsageDescription должен присутствовать в Info.plist для использования прокрутки камеры

Недавно я начал получать эту ошибку:

Ключ NSPhotoLibraryUsageDescription должен присутствовать в Info.plist для использования прокрутки камеры.

Я использую React Native для сборки своего приложения (я не знаком с ios native development) и не знаю, как добавить этот ключ в Info.plist

Можете ли вы опубликовать пример? Спасибо

Я использую пакет npm "react-native-camera-roll-picker": "^1.1.7"

12 ответов

Решение

Спасибо @rmaddy, я добавил это сразу после других пар ключ-строка в Info.plist и исправил проблему:

<key>NSPhotoLibraryUsageDescription</key>
<string>Photo Library Access Warning</string>

Редактировать:

У меня также возникли похожие проблемы на разных компонентах моего приложения. Закончилось добавление всех этих ключей (после обновления до Xcode8/iOS10):

<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app does not require access to the microphone.</string>
<key>NSCameraUsageDescription</key>
<string>This app requires access to the camera.</string>

Проверьте эту ссылку на developer.apple.com для получения полного списка ключевых ссылок на список свойств.

Полный список:

Apple Music:

<key>NSAppleMusicUsageDescription</key>
<string>My description about why I need this capability</string>

Блютуз:

<key>NSBluetoothPeripheralUsageDescription</key>  
<string>My description about why I need this capability</string>

Календарь:

<key>NSCalendarsUsageDescription</key>
<string>My description about why I need this capability</string>

камера:

<key>NSCameraUsageDescription</key>
<string>My description about why I need this capability</string>

Контакты:

<key>NSContactsUsageDescription</key>
<string>My description about why I need this capability</string>

FaceID:

<key>NSFaceIDUsageDescription</key>
<string>My description about why I need this capability</string>

Доля здоровья:

<key>NSHealthShareUsageDescription</key>
<string>My description about why I need this capability</string>

Обновление здоровья:

<key>NSHealthUpdateUsageDescription</key>
<string>My description about why I need this capability</string>

Домашний комплект:

<key>NSHomeKitUsageDescription</key>
<string>My description about why I need this capability</string>

Место нахождения:

<key>NSLocationUsageDescription</key>
<string>My description about why I need this capability</string>

Расположение (всегда):

<key>NSLocationAlwaysUsageDescription</key>
<string>My description about why I need this capability</string>

Расположение (при использовании):

<key>NSLocationWhenInUseUsageDescription</key>
<string>My description about why I need this capability</string>

Микрофон:

<key>NSMicrophoneUsageDescription</key>
<string>My description about why I need this capability</string>

Движение (Акселерометр):

<key>NSMotionUsageDescription</key>
<string>My description about why I need this capability</string>

NFC (ближняя связь):

<key>NFCReaderUsageDescription</key>
<string>My description about why I need this capability</string>

Библиотека фотографий:

<key>NSPhotoLibraryUsageDescription</key>
<string>My description about why I need this capability</string>

Библиотека фотографий (доступ только для записи):

<key>NSPhotoLibraryAddUsageDescription</key>
<string>My description about why I need this capability</string>

Напоминания:

<key>NSRemindersUsageDescription</key>
<string>My description about why I need this capability</string>

Siri:

<key>NSSiriUsageDescription</key>
<string>My description about why I need this capability</string>

Распознавание речи:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>

МОЙ ЛЮБИМЫЙ СПОСОБ СДЕЛАТЬ ЭТО

1. Открытьinfo.plist

2. Нажмите эту кнопку, чтобы добавить новый ключ

3. Прокрутите вниз, чтобы найти конфиденциальность - Описание использования библиотеки фотографий.

4. Выберите его, затем добавьте описание справа

С августа 2021 года не только мы должны добавить это:

      <key>NSPhotoLibraryUsageDescription</key> 
<string>We need access to photo library so that photos can be selected</string>

но также необходимо добавить это в файл info.plist внутри папки iOS для правильной работы

      <key>NSPhotoLibraryAddUsageDescription</key>    
<string>This app requires access to the photo library.</string>

Добавьте следующий код в файл info.plist

<key>NSPhotoLibraryUsageDescription</key>
<string>My description about why I need this capability</string>

Вам нужно вставить эти два в ваш info.plist, единственный способ, который работал в iOS 11 для меня.

    <key>NSPhotoLibraryUsageDescription</key>
    <string>This app requires access to the photo library.</string>

    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>This app requires access to the photo library.</string>

Для доступа к камере используйте:

<key>NSCameraUsageDescription</key>
<string>Camera Access Warning</string>

Я столкнулся с той же проблемой несколькими днями ранее в моем проекте IONIC 4. когда я загрузил свой IPA, я получил это предупреждение от App Store Connect.

Я исправил проблему "Отсутствующая строка цели в info.plist", выполнив следующие действия. надеюсь, что это сработает и для вас.

  1. Перейдите в свой файл "info.plist".

  1. Найдите этот ключ, который называется Privacy - Photo Library Usage Description. если его там нет, добавьте новый и его значение, как на изображении ниже.

Спасибо.

Когда используешь NSCameraUsageDescriptionпользователь может получить доступ к камере И выбрать изображения из библиотеки фотографий. Так что мне не нужно NSPhotoLibraryUsageDescription, верный?

Если вы добавили пары ключ-строка в Info.plist ( см. Ответ Мурата выше) и по-прежнему получаете сообщение об ошибке, попробуйте проверить, есть ли у цели, над которой вы сейчас работаете, ключи.

В моем случае у меня было 2 цели (разработка и разработка). Я добавил ключи в редакторе, но он работает только для основной цели, и я тестировал цель разработки. Поэтому мне пришлось открыть XCode, щелкнуть проект> Информация> Добавить туда пару ключей для цели разработки.

Для того, чтобы сохранить или получить изображение с камеры ролл. Кроме того, вам необходимо запросить разрешение у пользователя, в противном случае вы получите эту ошибку, иначе ваше приложение может выйти из строя. Чтобы избавиться от этого, добавьте это в ваш info.plist

<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app requires read and write permission from the user.</string>

В случае с Xamarin.iOS

 if you're adding it from the generic editor then "Privacy - Photo Library Additions Usage Description" will be the given option you will find out instead of "NSPhotoLibraryAddUsageDescription".

Я получил ту же ошибку при загрузке моего приложения Flutter в магазин приложений. ШАГИ, ЧТОБЫ ИСПРАВИТЬ ЭТО:

  1. Открыл папку ios моего проекта флаттера в XCode.
  2. Внутри папки бегуна я щелкнул файл info.split.
  3. нажал кнопку + перед «списком информационных свойств»
  4. Я прокручиваю вниз, пока не нахожу «Конфиденциальность — Описание использования библиотеки фотографий». Я нажал на это.
  5. Затем введите в раздел строки описание того, почему вы запрашиваете разрешение на фотографию. В моем случае я указал строку -> «Этому приложению требуется разрешение на доступ к камере и библиотеке фотографий».

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

"Privacy - Photo Library Additions Usage Description" for iOS 11 and later

"Privacy - Photo Library Usage Description" for iOS 6.0 and later

Откройте файл plist и этот код

<key>NSPhotoLibraryUsageDescription</key>
<string>This app requires access to the photo library.</string>

<key>NSPhotoLibraryAddUsageDescription</key>
<string>This app requires access to the photo library.</string>
Другие вопросы по тегам