La clave NSPhotoLibraryUsageDescription debe estar presente en Info.plist para usar el carrete de la cámara

157

Recientemente comencé a recibir este error:

La clave NSPhotoLibraryUsageDescription debe estar presente en Info.plist para usar el carrete de la cámara.

Estoy usando React Native para compilar mi aplicación (no estoy familiarizado con el desarrollo nativo de ios) y no sé cómo agregar esta clave a Info.plist

Puede publicar un ejemplo? Gracias

Estoy usando el paquete npm "react-native-camera-roll-picker": "^1.1.7"

ingrese la descripción de la imagen aquí

Murat Ozgul
fuente
1
Consulte stackoverflow.com/a/39476283/1226963 para ver un ejemplo de qué agregar a Info.plist. Además, solo busque NSPhotoLibraryUsageDescriptiony encontrará muchos ejemplos.
rmaddy

Respuestas:

392

Gracias @rmaddy, agregué esto justo después de otros pares clave-cadena en Info.plist y solucioné el problema:

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

Editar:

También terminé teniendo problemas similares en diferentes componentes de mi aplicación. Terminé agregando todas estas claves hasta ahora (después de actualizar a 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>

Consulte este enlace developer.apple.com para obtener una lista completa de referencias clave de la lista de propiedades.

Lista llena:

Apple Music:

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

Bluetooth:

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

Calendario:

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

Cámara:

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

Contactos:

<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>

Cuota de salud:

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

Actualización de salud:

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

Kit para el hogar:

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

Ubicación:

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

Ubicación (siempre):

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

Ubicación (cuando está en uso):

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

Micrófono:

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

Movimiento (acelerómetro):

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

NFC (comunicación de campo cercano):

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

Librería fotográfica:

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

Biblioteca de fotos (acceso de solo escritura):

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

Recordatorios:

<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>

Reconocimiento de voz:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>
Murat Ozgul
fuente
15
He estado usando la cadena, "Esta aplicación no requiere acceso a la biblioteca de fotos".
Daniel T.
He agregado clave y cadena en el archivo info.plist, luego construyo la aplicación usando la terminal y todos estos cambios se han eliminado. por favor guíelo
Dinesh Vaitage
Agregué esto pero aún se bloquea con el mismo error. ¿Por qué está pasando esto?
fish40
1
¿Dónde encontrar el archivo info.plist en iónico? No puedo entender eso.
Anuj
63

MI MANERA FAVORITA DE HACERLO

1. Abrir info.plist

ingrese la descripción de la imagen aquí

2. Haga clic en este botón para agregar una nueva clave

ingrese la descripción de la imagen aquí

3. Desplácese hacia abajo para encontrar Privacidad - Descripción de uso de la biblioteca de fotos

ingrese la descripción de la imagen aquí

4. Selecciónelo, luego agregue su descripción a la derecha

ingrese la descripción de la imagen aquí

Futuro brillante
fuente
Agregué esto pero aún se bloquea con el mismo error. ¿Por qué está pasando esto?
fish40
55
@ fish40 tal vez puedas intentar hacer clic en project-target-info y agregarlo allí y ver qué pasa.
Futuro brillante
12
su descripción clave hizo mi día XD
Fareed Alnamrouti
2
La descripción del uso me hizo cosquillas. ¡También solucioné mi problema, así que feliz bono!
James Dunne
1
¿Dónde encontrar el archivo info.plist? No puedo entender eso.
Anuj
17

Agregue el siguiente código en el archivo info.plist

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

ingrese la descripción de la imagen aquí

Dinesh Vaitage
fuente
2
Esto era exactamente lo que necesitaba ... ¡con la forma en que finalmente logré cargar mi aplicación! TNX :)
BvdVen
Es extraño que esto funcionó, pero los otros enfoques no funcionaron, tal vez es solo un error en xcode 9 beta. Muchas gracias por esto !!!
JohnV
Bienvenido, feliz, es ayuda para ti.
Dinesh Vaitage
10

Necesita pegar estos dos en su info.plist, la única forma que funcionó en iOS 11 para mí.

    <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>
Reza.Ab
fuente
4

Para uso de acceso a la cámara:

<key>NSCameraUsageDescription</key>
<string>Camera Access Warning</string>
O yo
fuente
1

Para guardar o recuperar una imagen del rollo de la cámara. Además, debe pedirle permiso al usuario; de lo contrario, recibirá este error o su aplicación se bloqueará. Para salvarse de esto, agregue esto a su info.plist

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

En el caso de 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".
Shanu Singh
fuente
0

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

Abra el archivo plist y este código

<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>
iOS
fuente
0

Si agregó los pares clave-cadena en Info.plist ( vea la respuesta de Murat arriba ) y aún obtiene el error, intente verificar si el objetivo en el que está trabajando actualmente tiene las claves.

En mi caso tenía 2 objetivos (desarrollo y desarrollo). Agregué las claves en el editor, pero solo funciona para el objetivo principal y estaba probando el objetivo de desarrollo. Así que tuve que abrir XCode, hacer clic en el proyecto> Información> Agregar el par de claves para el objetivo de desarrollo allí.

Moisés Hilario
fuente
0

Me enfrenté al mismo problema unos días antes para mi proyecto IONIC 4. Cuando cargué mi IPA, recibí estas advertencias de App Store Connect.

ingrese la descripción de la imagen aquí

Solucioné el problema "Cadena de propósito faltante en info.plist", siguiendo los siguientes pasos. Espero que también funcione para ti.

  1. Pase a su archivo "info.plist".

ingrese la descripción de la imagen aquí

  1. Encuentra esta llave, llamada Privacy - Photo Library Usage Description. si no está presente allí, agregue uno nuevo y su valor, como la imagen de abajo.

ingrese la descripción de la imagen aquí

Gracias.

Sushil
fuente