La clé NSPhotoLibraryUsageDescription doit être présente dans Info.plist pour utiliser la pellicule

157

Récemment, j'ai commencé à avoir cette erreur:

La clé NSPhotoLibraryUsageDescription doit être présente dans Info.plist pour utiliser la pellicule.

J'utilise React Native pour créer mon application (je ne suis pas familier avec le développement natif iOS) et je ne sais pas comment ajouter cette clé à Info.plist

Pouvez-vous poster un exemple? Merci

J'utilise le package npm "react-native-camera-roll-picker": "^1.1.7"

entrez la description de l'image ici

Murat Ozgul
la source
1
Voir stackoverflow.com/a/39476283/1226963 pour un exemple de ce qu'il faut ajouter à Info.plist. Faites également une recherche sur NSPhotoLibraryUsageDescriptionet vous trouverez de nombreux exemples.
rmaddy

Réponses:

394

Merci @rmaddy, j'ai ajouté ceci juste après d'autres paires clé-chaîne dans Info.plist et corrigé le problème:

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

Éditer:

J'ai également rencontré des problèmes similaires sur différents composants de mon application. J'ai fini par ajouter toutes ces clés jusqu'à présent (après la mise à jour vers 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>

Consultez ce lien developer.apple.com pour obtenir la liste complète des références clés de la liste de propriétés.

Liste complète:

Musique Apple:

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

Calendrier:

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

Caméra:

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

Contacts:

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

Part de la santé:

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

Mise à jour sur la santé:

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

Kit maison:

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

Emplacement:

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

Emplacement (toujours):

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

Emplacement (lors de l'utilisation):

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

Microphone:

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

Mouvement (accéléromètre):

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

NFC (Communication en champ proche):

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

Galerie de photos:

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

Photothèque (accès en écriture seule):

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

Rappels:

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

Reconnaissance de la parole:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>
Murat Ozgul
la source
15
J'utilise la chaîne "Cette application ne nécessite pas d'accès à la photothèque".
Daniel T.27
J'ai ajouté la clé et la chaîne dans le fichier info.plist, puis je crée une application à l'aide du terminal et toutes ces modifications ont été supprimées. s'il vous plaît guider dessus
Dinesh Vaitage
J'ai ajouté ceci mais il plante toujours avec la même erreur. Pourquoi cela se produit-il?
poisson40
1
où trouver le fichier info.plist en ionique? Je ne suis pas en mesure de comprendre cela.
Anuj
63

MA MANIÈRE PRÉFÉRÉE DE LE FAIRE

1. Ouvrir info.plist

entrez la description de l'image ici

2. Cliquez sur ce bouton pour ajouter une nouvelle clé

entrez la description de l'image ici

3. Faites défiler vers le bas pour trouver Confidentialité - Description de l'utilisation de la photothèque

entrez la description de l'image ici

4. Sélectionnez-le, puis ajoutez votre description à droite

entrez la description de l'image ici

Brillant avenir
la source
J'ai ajouté ceci mais il plante toujours avec la même erreur. Pourquoi cela se produit-il?
poisson40
5
@ fish40 peut-être que vous pouvez essayer de cliquer sur project-target-info, et l'ajouter ici et voir ce qui se passe?
Bright Future
12
votre description clé a fait ma journée XD
Fareed Alnamrouti
2
La description d'utilisation m'a chatouillé. Correction de mon problème trop joyeux bonus!
James Dunne
1
où trouver le fichier info.plist? Je ne suis pas en mesure de comprendre cela.
Anuj
17

Ajouter le code suivant dans le fichier info.plist

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

entrez la description de l'image ici

Dinesh Vaitage
la source
2
C'était exactement ce dont j'avais besoin ... avec la source, j'ai finalement réussi à télécharger mon application! TNX :)
BvdVen
C'est étrange que cela ait fonctionné, mais les autres approches n'ont pas fonctionné, c'est peut-être juste un bogue sur xcode 9 beta. Merci beaucoup pour cela !!!
JohnV
Bienvenue, heureux que cela vous aide.
Dinesh Vaitage
10

Vous devez coller ces deux dans votre info.plist, le seul moyen qui a fonctionné dans iOS 11 pour moi.

    <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
la source
4

Pour l'utilisation de l'accès à la caméra:

<key>NSCameraUsageDescription</key>
<string>Camera Access Warning</string>
Ou Je
la source
1

Pour enregistrer ou récupérer une image de la pellicule. De plus, vous devez demander l'autorisation à l'utilisateur, sinon vous obtiendrez cette erreur ou votre application risque de planter. Pour vous sauver de cela, ajoutez ceci dans votre info.plist

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

Dans le cas 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
la source
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

Ouvrez le fichier plist et ce code

<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
la source
0

Si vous avez ajouté les paires clé-chaîne dans Info.plist ( voir la réponse de Murat ci-dessus ) et que vous obtenez toujours l'erreur, essayez de vérifier si la cible sur laquelle vous travaillez actuellement a les clés.

Dans mon cas, j'avais 2 cibles (dev et développement). J'ai ajouté les clés dans l'éditeur, mais cela ne fonctionne que pour la cible principale et je testais sur la cible de développement. J'ai donc dû ouvrir XCode, cliquer sur le projet> Info> Ajouter la paire de clés pour la cible de développement.

Moises Hilario
la source
0

J'ai rencontré le même problème quelques jours plus tôt pour mon projet IONIC 4. lorsque j'ai téléchargé mon IPA, j'ai reçu ces avertissements de l'App Store Connect.

entrez la description de l'image ici

J'ai résolu le problème "Chaîne de but manquante dans info.plist", par les étapes suivantes. espérons que cela fonctionnera également pour vous.

  1. Accédez à votre fichier "info.plist".

entrez la description de l'image ici

  1. Trouvez cette clé, appelée Privacy - Photo Library Usage Description. s'il n'y est pas présent, ajoutez-en un nouveau et sa valeur, comme l'image ci-dessous.

entrez la description de l'image ici

Merci.

Sushil
la source