La chiave NSPhotoLibraryUsageDescription deve essere presente in Info.plist per utilizzare il rullino fotografico


157

Di recente ho iniziato a ricevere questo errore:

La chiave NSPhotoLibraryUsageDescription deve essere presente in Info.plist per utilizzare il rullino fotografico.

Sto usando React Native per creare la mia app (non ho familiarità con lo sviluppo nativo iOS) e non so come aggiungere questa chiave a Info.plist

Puoi pubblicare un esempio? Grazie

Sto usando il pacchetto npm "react-native-camera-roll-picker": "^1.1.7"

inserisci qui la descrizione dell'immagine


1
Vedere stackoverflow.com/a/39476283/1226963 per un esempio di cosa aggiungere a Info.plist. Inoltre, basta fare una ricerca NSPhotoLibraryUsageDescriptione troverai molti esempi.
rmaddy,

Risposte:


392

Grazie @rmaddy, l'ho aggiunto subito dopo altre coppie chiave-stringa in Info.plist e risolto il problema:

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

Modificare:

Ho anche avuto problemi simili su diversi componenti della mia app. Ho finito per aggiungere tutte queste chiavi finora (dopo l'aggiornamento 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>

Dai un'occhiata a questo link developer.apple.com per l'elenco completo dei riferimenti chiave dell'elenco delle proprietà.

Lista completa:

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>

Telecamera:

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

Contatti:

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

Condividi sulla salute:

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

Aggiornamento sanitario:

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

Kit casa:

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

Posizione:

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

Posizione (sempre):

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

Posizione (quando in uso):

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

Microfono:

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

Movimento (accelerometro):

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

NFC (Near-field communication):

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

Fototeca:

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

Libreria foto (accesso in sola scrittura):

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

promemoria:

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

Riconoscimento vocale:

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

15
Ho usato la stringa "Questa app non richiede l'accesso alla libreria di foto".
Daniel T.,

Ho aggiunto chiave e stringa nel file info.plist, quindi ho creato un'app usando il terminale e tutte queste modifiche sono state rimosse. per favore guidaci sopra
Dinesh Vaitage

Ho aggiunto questo, ma si blocca ancora con lo stesso errore. Perché sta succedendo questo?
pesce40,

1
dove trovare il file info.plist in ionico? Non sono in grado di ottenerlo.
Anuj,

63

IL MIO MODO PREFERITO PER FARLO

1. Apri info.plist

inserisci qui la descrizione dell'immagine

2. Fare clic su questo pulsante per aggiungere una nuova chiave

inserisci qui la descrizione dell'immagine

3. Scorri verso il basso per trovare Privacy - Descrizione dell'uso della Photo Library

inserisci qui la descrizione dell'immagine

4. Selezionalo, quindi aggiungi la descrizione a destra

inserisci qui la descrizione dell'immagine


Ho aggiunto questo, ma si blocca ancora con lo stesso errore. Perché sta succedendo questo?
fish40,

5
@ fish40 forse puoi provare a fare clic su project-target-info, e aggiungerlo lì e vedere cosa succede?
Bright Future,

12
la tua descrizione chiave ha reso la mia giornata XD
Fareed Alnamrouti il

2
La descrizione dell'uso mi ha solleticato. Risolto anche il mio problema così felice bonus!
James Dunne,

1
dove trovare il file info.plist? Non sono in grado di ottenerlo.
Anuj,

17

Aggiungi il seguente codice nel file info.plist

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

inserisci qui la descrizione dell'immagine


2
Questo era esattamente ciò di cui avevo bisogno ... con il modo in cui finalmente sono riuscito a caricare la mia app! TNX :)
BvdVen

È strano che abbia funzionato, ma gli altri approcci no, forse è solo un bug su xcode 9 beta. Mille grazie per questo !!!
JohnV,

Benvenuto, felice che ti aiuti.
Dinesh Vaitage,

10

Devi incollare questi due nella tua info.plist, L'unico modo che ha funzionato in iOS 11 per me.

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

4

Per l'accesso alla telecamera usare:

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

1

Per salvare o recuperare un'immagine dal rullino fotografico. Inoltre, devi chiedere l'autorizzazione all'utente, altrimenti visualizzerai questo errore o la tua app potrebbe bloccarsi. Per salvarti da questo aggiungi questo nel tuo info.plist

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

Nel caso di 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".

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

Apri il file plist e questo codice

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

0

Se hai aggiunto le coppie chiave-stringa in Info.plist ( vedi la risposta di Murat sopra ) e stai ancora ottenendo l'errore, prova a verificare se la destinazione su cui stai attualmente lavorando ha le chiavi.

Nel mio caso avevo 2 obiettivi (sviluppo e sviluppo). Ho aggiunto le chiavi nell'editor, ma funziona solo per l'obiettivo principale e stavo testando l'obiettivo di sviluppo. Quindi ho dovuto aprire XCode, fare clic sul progetto> Informazioni> Aggiungi la coppia di chiavi per l'obiettivo di sviluppo lì.


0

ho affrontato lo stesso problema alcuni giorni prima per il mio progetto IONIC 4. quando ho caricato il mio IPA, ho ricevuto questi avvisi da App Store Connect.

inserisci qui la descrizione dell'immagine

Ho risolto il problema "Missing Purpose String in info.plist", procedendo come segue. spero che funzionerà anche per te.

  1. Vai al tuo file "info.plist".

inserisci qui la descrizione dell'immagine

  1. Trova questa chiave, chiamata Privacy - Photo Library Usage Description. se non è presente lì, aggiungine uno nuovo e il suo valore, come sotto l'immagine.

inserisci qui la descrizione dell'immagine

Grazie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.