Der NSPhotoLibraryUsageDescription-Schlüssel muss in der Info.plist vorhanden sein, damit die Kamerarolle verwendet werden kann

156

Vor kurzem bekam ich diesen Fehler:

Der NSPhotoLibraryUsageDescription-Schlüssel muss in der Info.plist vorhanden sein, damit die Kamerarolle verwendet werden kann.

Ich verwende React Native zum Erstellen meiner App (ich bin nicht mit der Entwicklung von ios native vertraut) und weiß nicht, wie ich diesen Schlüssel zu Info.plist hinzufügen soll

Können Sie ein Beispiel posten? Vielen Dank

Ich benutze das npm-Paket "react-native-camera-roll-picker": "^1.1.7"

Geben Sie hier die Bildbeschreibung ein

Murat Ozgul
quelle
1
Unter stackoverflow.com/a/39476283/1226963 finden Sie ein Beispiel für das Hinzufügen zu Info.plist. Führen Sie auch einfach eine Suche durch NSPhotoLibraryUsageDescriptionund Sie werden viele Beispiele finden.
rmaddy

Antworten:

391

Danke @rmaddy, ich habe dies direkt nach anderen Key-String-Paaren in Info.plist hinzugefügt und das Problem behoben:

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

Bearbeiten:

Ich hatte auch ähnliche Probleme mit verschiedenen Komponenten meiner App. Bis jetzt wurden alle diese Schlüssel hinzugefügt (nach dem Update auf 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>

Unter diesem Link zu developer.apple.com finden Sie eine vollständige Liste der Schlüsselreferenzen für die Eigenschaftsliste.

Volle Liste:

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>

Kalender:

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

Kamera:

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

Kontakte:

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

Gesundheitsanteil:

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

Gesundheits-Update:

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

Heimtrikot:

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

Ort:

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

Ort (immer):

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

Standort (bei Verwendung):

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

Mikrofon:

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

Bewegung (Beschleunigungsmesser):

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

NFC (Nahfeldkommunikation):

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

Fotobibliothek:

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

Fotobibliothek (Nur-Schreib-Zugriff):

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

Erinnerungen:

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

Spracherkennung:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>
Murat Ozgul
quelle
15
Ich habe die Zeichenfolge "Diese App benötigt keinen Zugriff auf die Fotobibliothek" verwendet.
Daniel T.
Ich habe Schlüssel und Zeichenfolge in der Datei info.plist hinzugefügt, dann erstelle ich eine App mit dem Terminal und alle diese Änderungen wurden entfernt. Bitte führen Sie darauf
Dinesh Vaitage
Ich habe dies hinzugefügt, aber es stürzt immer noch mit demselben Fehler ab. Warum passiert das?
fish40
1
Wo finde ich die Datei info.plist in ionic? Das kann ich nicht bekommen.
Anuj
63

MEIN LIEBLINGSWEG, ES ZU TUN

1. Öffnen info.plist

Geben Sie hier die Bildbeschreibung ein

2. Klicken Sie auf diese Schaltfläche, um einen neuen Schlüssel hinzuzufügen

Geben Sie hier die Bildbeschreibung ein

3. Scrollen Sie nach unten, um die Beschreibung der Verwendung von Datenschutz - Fotobibliothek zu finden

Geben Sie hier die Bildbeschreibung ein

4. Wählen Sie es aus und fügen Sie rechts Ihre Beschreibung hinzu

Geben Sie hier die Bildbeschreibung ein

Strahlende Zukunft
quelle
Ich habe dies hinzugefügt, aber es stürzt immer noch mit demselben Fehler ab. Warum passiert das?
fish40
5
@ fish40 Vielleicht kannst du versuchen, auf Projekt-Ziel-Informationen zu klicken und sie dort hinzuzufügen und zu sehen, was passiert?
Helle Zukunft
12
Ihre Schlüsselbeschreibung machte meinen Tag XD
Fareed Alnamrouti
2
Die Nutzungsbeschreibung hat mich gekitzelt. Behoben mein Problem auch so glücklich Bonus!
James Dunne
1
Wo finde ich die Datei info.plist? Das kann ich nicht bekommen.
Anuj
17

Fügen Sie den folgenden Code in die Datei info.plist ein

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

Geben Sie hier die Bildbeschreibung ein

Dinesh Vaitage
quelle
2
Genau das brauchte ich ... mit der Quellmethode gelang es mir endlich, meine App hochzuladen! TNX :)
BvdVen
Es ist seltsam, dass dies funktioniert hat, aber die anderen Ansätze haben es nicht getan, vielleicht ist es nur ein Fehler in der Beta von xcode 9. Vielen Dank dafür !!!
JohnV
Willkommen, glücklich, dass es Ihnen hilft.
Dinesh Vaitage
10

Sie müssen diese beiden in Ihre info.plist einfügen. Dies ist die einzige Möglichkeit, die in iOS 11 für mich funktioniert hat.

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

Für den Kamerazugriff verwenden Sie:

<key>NSCameraUsageDescription</key>
<string>Camera Access Warning</string>
Ori
quelle
1

Um ein Bild von der Kamerarolle zu speichern oder abzurufen. Außerdem müssen Sie den Benutzer um Erlaubnis bitten, da sonst dieser Fehler auftritt oder Ihre App abstürzt. Um sich davor zu schützen, fügen Sie dies in Ihre info.plist ein

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

Im Fall von 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
quelle
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

Öffnen Sie die Plist-Datei und diesen 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
quelle
0

Wenn Sie die Schlüssel-Zeichenfolgen-Paare in Info.plist hinzugefügt haben ( siehe Murats Antwort oben ) und dennoch die Fehlermeldung erhalten, versuchen Sie zu überprüfen, ob das Ziel, an dem Sie gerade arbeiten, die Schlüssel enthält.

In meinem Fall hatte ich 2 Ziele (Entwicklung und Entwicklung). Ich habe die Schlüssel im Editor hinzugefügt, aber es funktioniert nur für das Hauptziel und ich habe das Entwicklungsziel getestet. Also musste ich XCode öffnen, dort auf Projekt> Info> Schlüsselpaar für das Entwicklungsziel hinzufügen klicken.

Moises Hilario
quelle
0

Ich hatte einige Tage zuvor das gleiche Problem mit meinem IONIC 4-Projekt. Als ich meine IPA hochgeladen habe, habe ich diese Warnungen von App Store Connect erhalten.

Geben Sie hier die Bildbeschreibung ein

Ich habe das Problem "Missing Purpose String in info.plist" durch die folgenden Schritte behoben. hoffe es wird auch für dich funktionieren.

  1. Gehen Sie zu Ihrer Datei "info.plist".

Geben Sie hier die Bildbeschreibung ein

  1. Finden Sie diesen Schlüssel, genannt Privacy - Photo Library Usage Description. Wenn es dort nicht vorhanden ist, fügen Sie ein neues hinzu und es ist wie unten abgebildet wertvoll.

Geben Sie hier die Bildbeschreibung ein

Vielen Dank.

Sushil
quelle