A chave NSPhotoLibraryUsageDescription deve estar presente no Info.plist para usar o rolo da câmera

157

Recentemente, comecei a receber este erro:

A chave NSPhotoLibraryUsageDescription deve estar presente no Info.plist para usar o rolo da câmera.

Estou usando o React Native para criar meu aplicativo (não estou familiarizado com o desenvolvimento nativo do ios) e não sei como adicionar essa chave ao Info.plist

Você pode postar um exemplo? obrigado

Estou usando o pacote npm "react-native-camera-roll-picker": "^1.1.7"

insira a descrição da imagem aqui

Murat Ozgul
fonte
1
Consulte stackoverflow.com/a/39476283/1226963 para obter um exemplo do que adicionar ao Info.plist. Além disso, basta fazer uma pesquisa NSPhotoLibraryUsageDescriptione você encontrará muitos exemplos.
Rddydy 15/09/16

Respostas:

392

Obrigado @rmaddy, eu adicionei isso logo após outros pares de chaves no Info.plist e corrigi o problema:

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

Editar:

Também acabei tendo problemas semelhantes em diferentes componentes do meu aplicativo. Acabamos adicionando todas essas chaves até agora (após a atualização para o 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>

Confira este link developer.apple.com para obter a lista completa de referências de chave da lista de propriedades.

Lista completa:

Música da 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>

Calendário:

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

Câmera:

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

Contatos:

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

Partilha de Saúde:

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

Atualização de saúde:

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

Kit em casa:

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

Localização:

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

Localização (sempre):

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

Localização (Quando em uso):

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

Microfone:

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

Movimento (acelerômetro):

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

NFC (comunicação em campo próximo):

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

Biblioteca de fotos:

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

Biblioteca de fotos (acesso somente gravação):

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

Lembretes:

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

Reconhecimento de fala:

<key>NSSpeechRecognitionUsageDescription</key>
<string>My description about why I need this capability</string>
Murat Ozgul
fonte
15
Eu tenho usado a string "Este aplicativo não requer acesso à biblioteca de fotos".
Daniel T.
Eu adicionei chave e string no arquivo info.plist, em seguida, crio o aplicativo usando o terminal e todas essas alterações foram removidas. por favor, guie-o
Dinesh Vaitage 10/17
Eu adicionei isso, mas ele ainda está travando com o mesmo erro. Porque isso está acontecendo?
usar o seguinte código
1
onde encontrar o arquivo info.plist no ionic? Eu não sou capaz de conseguir isso.
Anuj
63

MINHA MANEIRA FAVORITA DE O FAZER

1. Abrir info.plist

insira a descrição da imagem aqui

2. Clique neste botão para adicionar uma nova chave

insira a descrição da imagem aqui

3. Role para baixo para encontrar Privacidade - Descrição da utilização da biblioteca de fotos

insira a descrição da imagem aqui

4. Selecione-o e adicione sua descrição à direita

insira a descrição da imagem aqui

Futuro brilhante
fonte
Eu adicionei isso, mas ele ainda está travando com o mesmo erro. Porque isso está acontecendo?
usar o seguinte código
5
@ fish40 talvez você possa tentar clicar em project-target-info, adicioná-lo e ver o que acontece?
Bright Future
12
sua descrição-chave fez meu dia XD
Fareed Alnamrouti
2
A descrição de uso me agradou. Corrigido meu problema também, bônus tão feliz!
James Dunne
1
onde encontrar o arquivo info.plist? Eu não sou capaz de conseguir isso.
Anuj
17

Adicione o seguinte código no arquivo info.plist

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

insira a descrição da imagem aqui

Dinesh Vaitage
fonte
2
Era exatamente isso que eu precisava ... com a maneira como finalmente consegui fazer o upload do meu aplicativo! TNX :)
BvdVen
É estranho que isso funcionou, mas as outras abordagens não funcionaram, talvez seja apenas um bug no xcode 9 beta. Muito obrigado por isso !!!
precisa saber é
Bem-vindo, feliz é ajuda para você.
Dinesh Vaitage
10

Você precisa colar esses dois em seu info.plist, a única maneira que funcionou no iOS 11 para mim.

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

Para acesso à câmera, use:

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

Para salvar ou recuperar uma imagem do rolo da câmera. Além disso, você precisa pedir permissão ao usuário, caso contrário, esse erro poderá ocorrer ou seu aplicativo poderá sofrer uma falha. Para se salvar disso, adicione-o ao seu info.plist

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

No caso do 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
fonte
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 o arquivo plist e 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
fonte
0

Se você adicionou os pares de cadeia de teclas no Info.plist ( consulte a resposta de Murat acima ) e ainda está recebendo o erro, tente verificar se o destino no qual você está trabalhando atualmente possui as chaves.

No meu caso, eu tinha 2 alvos (dev e desenvolvimento). Eu adicionei as chaves no editor, mas ele funciona apenas para o destino principal e eu estava testando no destino de desenvolvimento. Então, tive que abrir o XCode, clicar no projeto> Informações> Adicionar o par de chaves para o destino de desenvolvimento lá.

Moises Hilario
fonte
0

enfrentei o mesmo problema alguns dias antes no meu projeto IONIC 4. Quando carreguei meu IPA, recebi esses avisos da App Store Connect.

insira a descrição da imagem aqui

Corrigi o problema "String de finalidade ausente no info.plist", seguindo as etapas a seguir. espero que também funcione para você.

  1. Vá para o arquivo "info.plist".

insira a descrição da imagem aqui

  1. Encontre esta chave, chamada Privacy - Photo Library Usage Description. se não estiver presente, adicione um novo e seu valor, como na imagem abaixo.

insira a descrição da imagem aqui

Obrigado.

Sushil
fonte