Aby można było używać rolki z aparatu, klucz NSPhotoLibraryUsageDescription musi być obecny w Info.plist

157

Ostatnio zacząłem otrzymywać ten błąd:

Aby można było używać rolki z aparatu, klucz NSPhotoLibraryUsageDescription musi być obecny w Info.plist.

Używam React Native do budowy mojej aplikacji (nie znam natywnego programowania na iOS) i nie wiem, jak dodać ten klucz do Info.plist

Czy możesz zamieścić przykład? Dzięki

Używam pakietu npm "react-native-camera-roll-picker": "^1.1.7"

wprowadź opis obrazu tutaj

Murat Ozgul
źródło
1
Zobacz stackoverflow.com/a/39476283/1226963, aby zobaczyć przykład tego, co dodać do Info.plist. Po prostu wyszukaj, NSPhotoLibraryUsageDescriptiona znajdziesz wiele przykładów.
rmaddy

Odpowiedzi:

393

Dzięki @rmaddy, dodałem to zaraz po innych parach kluczy w Info.plist i naprawiłem problem:

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

Edytować:

Miałem też podobne problemy z różnymi komponentami mojej aplikacji. Skończyło się na dodawaniu wszystkich tych kluczy do tej pory (po aktualizacji do 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>

Sprawdź ten link developer.apple.com, aby uzyskać pełną listę najważniejszych odniesień do listy właściwości.

Pełna lista:

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>

Kalendarz:

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

Aparat fotograficzny:

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

Łączność:

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

Udostępnianie zdrowia:

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

Aktualizacja zdrowia:

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

Zestaw domowy:

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

Lokalizacja:

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

Lokalizacja (zawsze):

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

Lokalizacja (podczas użytkowania):

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

Ruch (akcelerometr):

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

NFC (komunikacja bliskiego zasięgu):

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

Album zdjęć:

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

Biblioteka zdjęć (dostęp tylko do zapisu):

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

Przypomnienia:

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

Rozpoznawanie mowy:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>
Murat Ozgul
źródło
15
Używam ciągu „Ta aplikacja nie wymaga dostępu do biblioteki zdjęć”.
Daniel T.
Dodałem klucz i ciąg w pliku info.plist, a następnie buduję aplikację za pomocą terminala i wszystkie te zmiany zostały usunięte. poprowadź to
Dinesh Vaitage,
Dodałem to, ale nadal się zawiesza z tym samym błędem. Dlaczego tak się dzieje?
ryby 40
1
gdzie znaleźć plik info.plist w ionic? Nie jestem w stanie tego zrozumieć.
Anuj
63

MÓJ ULUBIONY SPOSÓB

1. Otwórz info.plist

wprowadź opis obrazu tutaj

2. Kliknij ten przycisk, aby dodać nowy klucz

wprowadź opis obrazu tutaj

3. Przewiń w dół, aby znaleźć Prywatność - Opis wykorzystania biblioteki zdjęć

wprowadź opis obrazu tutaj

4. Wybierz go, a następnie dodaj opis po prawej stronie

wprowadź opis obrazu tutaj

Świetlana przyszłość
źródło
Dodałem to, ale nadal się zawiesza z tym samym błędem. Dlaczego tak się dzieje?
ryba 40
5
@ fish40 może możesz spróbować kliknąć project-target-info i dodać go tam i zobaczyć, co się stanie?
Bright Future
12
Twój kluczowy opis sprawił, że mój dzień XD
Fareed Alnamrouti
2
Opis użycia połaskotał mnie. Naprawiłem też mój problem, więc szczęśliwy bonus!
James Dunne,
1
gdzie znaleźć plik info.plist? Nie jestem w stanie tego zrozumieć.
Anuj
17

Dodaj następujący kod w pliku info.plist

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

wprowadź opis obrazu tutaj

Dinesh Vaitage
źródło
2
To było dokładnie to, czego potrzebowałem ... ze źródłem, w jaki w końcu udało mi się załadować moją aplikację! TNX :)
BvdVen
To dziwne, że to zadziałało, ale inne podejścia nie, może to tylko błąd w Xcode 9 beta. Wielkie dzięki za to !!!
JohnV
Witaj, szczęśliwy, że to dla ciebie pomoc.
Dinesh Vaitage
10

Musisz wkleić te dwa do swojej info.plist, jedyny sposób, który działał w iOS 11 dla mnie.

    <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
źródło
4

Aby uzyskać dostęp do aparatu, użyj:

<key>NSCameraUsageDescription</key>
<string>Camera Access Warning</string>
Lub ja
źródło
1

Aby zapisać lub pobrać obraz z rolki aparatu. Dodatkowo musisz poprosić użytkownika o pozwolenie, w przeciwnym razie pojawi się ten błąd lub aplikacja może ulec awarii. Aby uchronić się przed tym, dodaj to do swojej listy info.plist

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

W przypadku 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
źródło
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

Otwórz plik plist i ten kod

<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
źródło
0

Jeśli dodałeś pary klucz-ciąg w Info.plist ( zobacz odpowiedź Murata powyżej ) i nadal otrzymujesz błąd, spróbuj sprawdzić, czy cel, nad którym obecnie pracujesz, ma klucze.

W moim przypadku miałem 2 cele (programowanie i rozwój). Dodałem klucze w edytorze, ale działa to tylko dla głównego celu i testowałem na celu programistycznym. Musiałem więc otworzyć XCode, kliknąć projekt> Informacje> Dodaj tam parę kluczy dla celu rozwoju.

Moises Hilario
źródło
0

Kilka dni wcześniej napotkałem ten sam problem w przypadku mojego projektu IONIC 4. po przesłaniu mojego IPA otrzymałem ostrzeżenia z App Store Connect.

wprowadź opis obrazu tutaj

Rozwiązałem problem „Brakujący ciąg celu w info.plist”, wykonując następujące kroki. mam nadzieję, że to zadziała również dla Ciebie.

  1. Przejdź do pliku „info.plist”.

wprowadź opis obrazu tutaj

  1. Znajdź ten klucz, zwany Privacy - Photo Library Usage Description. jeśli go tam nie ma, dodaj nowy i jego wartość, jak na poniższym obrazku.

wprowadź opis obrazu tutaj

Dzięki.

Sushil
źródło