usage the nsphotolibraryaddusagedescription nscamerausagedescription not must info description app ios camera plist barcode ios-permissions

the - NSCameraUsageDescription en iOS 10.0 runtime crash?



the app''s info plist must contain an nsphotolibraryaddusagedescription key (11)

Usando iOS 10.0 última beta. Intenté usar la Cámara para escanear el código de barras en mi aplicación, y se bloqueó con este error de tiempo de ejecución.

Esta aplicación se ha bloqueado porque intentó acceder a datos sensibles a la privacidad sin una descripción del uso. El Info.plist de la aplicación debe contener una clave NSCameraUsageDescription con un valor de cadena que explique al usuario cómo la aplicación usa estos datos.

¿Poner esta llave en la lista, pero aún así se bloqueó?


A medida que Apple ha cambiado, puede acceder a cualquier tipo de datos privados de usuarios en iOS 10 .

Info.plist agregar la clave " Privacy - Camera usage description " a la Info.plist información de su aplicación y su información de uso que se aplica a su aplicación, como en el siguiente ejemplo que he proporcionado que he usado para escanear códigos de barras.

Para obtener más información, encuentre la siguiente captura de pantalla.


Alternativamente, abra Info.plist como código fuente y agregue esto:

<key>NSCameraUsageDescription</key> <string>Camera usage description</string>


Debe agregar esta clave a continuación en info.plist.

NSCameraUsageDescription or Privacy - Camera usage description

Y agregue una descripción del uso.

Capturas de pantalla detalladas están disponibles en este link


Después de iOS 10, debe definir y proporcionar una descripción de uso de todos los datos sensibles a la privacidad del sistema a los que accede su aplicación en Info.plist como se muestra a continuación:

Calendario

Key : Privacy - Calendars Usage Description Value : $(PRODUCT_NAME) calendar events

Recordatorio:

Key : Privacy - Reminders Usage Description Value : $(PRODUCT_NAME) reminder use

Contacto:

Key : Privacy - Contacts Usage Description Value : $(PRODUCT_NAME) contact use

Foto:

Key : Privacy - Photo Library Usage Description Value : $(PRODUCT_NAME) photo use

Compartir Bluetooth:

Key : Privacy - Bluetooth Peripheral Usage Description Value : $(PRODUCT_NAME) Bluetooth Peripheral use

Micrófono:

Key : Privacy - Microphone Usage Description Value : $(PRODUCT_NAME) microphone use

Cámara:

Key : Privacy - Camera Usage Description Value : $(PRODUCT_NAME) camera use

Ubicación :

Key : Privacy - Location Always Usage Description Value : $(PRODUCT_NAME) location use Key : Privacy - Location When In Use Usage Description Value : $(PRODUCT_NAME) location use

Heath:

Key : Privacy - Health Share Usage Description Value : $(PRODUCT_NAME) heath share use Key : Privacy - Health Update Usage Description Value : $(PRODUCT_NAME) heath update use

HomeKit:

Key : Privacy - HomeKit Usage Description Value : $(PRODUCT_NAME) home kit use

Mediateca :

Key : Privacy - Media Library Usage Description Value : $(PRODUCT_NAME) media library use

Movimiento:

Key : Privacy - Motion Usage Description Value : $(PRODUCT_NAME) motion use

Reconocimiento de voz :

Key : Privacy - Speech Recognition Usage Description Value : $(PRODUCT_NAME) speech use

SiriKit:

Key : Privacy - Siri Usage Description Value : $(PRODUCT_NAME) siri use

Proveedor de TV:

Key : Privacy - TV Provider Usage Description Value : $(PRODUCT_NAME) tvProvider use

Puede obtener información detallada en this enlace.


Otra instancia a la que me enfrenté al tratar de usar la cámara fue que todavía estaba ocupada _CRASHING_DUE_TO_PRIVACY dando el mismo _CRASHING_DUE_TO_PRIVACY incluso después de agregar la "Descripción del uso de la cámara". Después de no poder obtener nada tangible de la pila de llamadas, cambió al "Organizador" y examinó los informes de fallas en el dispositivo. Descubrí que, de hecho, se quejaba de la privacidad debido a la falta de "Descripción del uso del micrófono". Agregué eso y me deshice de un colapso tan críptico.


Para aquellos que todavía reciben el error a pesar de que agregó las claves adecuadas en Info.plist:

Asegúrese de agregar la clave en Info.plist correcta. La versión más nueva de xCode, aparentemente tiene 3 Info.plist.

Uno está debajo de la carpeta con el nombre de su aplicación, lo que me resolvió el problema.

El segundo está bajo YourappnameTests y el tercero está bajo YourappnameUITests.

Espero eso ayude.



Revisé el plist y descubrí que no funciona, solo en la información del "proyecto", debe agregar "Privacidad - Cámara ...", entonces debería funcionar. Espero poder ayudarte.


Si está utilizando Ionic, puede resolverlo directamente desde config.xml agregando la etiqueta ios de la plataforma interna:

<platform name="ios"> . . . <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription"> <string>photo library usage description</string> </config-file> <config-file target="*-Info.plist" parent="NSCameraUsageDescription"> <string>camera usage description</string> </config-file> . . . </platform>

Me gustaría agradecer a @BHUPI la respuesta también.


Use estos valores brutos y copie en info.plist

<key>NSCalendarsUsageDescription</key> <string>$(PRODUCT_NAME) calendar events</string> <key>NSRemindersUsageDescription</key> <string>$(PRODUCT_NAME) reminder use</string> <key>NSCameraUsageDescription</key> <string>This app requires to access your photo library to show image on profile and send via chat</string> <key>NSMicrophoneUsageDescription</key> <string>This app requires to access your microphone to record video with your voice send via chat</string> <key>NSPhotoLibraryUsageDescription</key> <string>This app requires to access your photo library to show image on profile and send via chat</string> <key>NSContactsUsageDescription</key> <string>$(PRODUCT_NAME) contact use</string> <key>NSLocationAlwaysUsageDescription</key> <string>$(PRODUCT_NAME) location use</string> <key>NSLocationWhenInUseUsageDescription</key> <string>$(PRODUCT_NAME) location use</string>


la interfaz de usuario de xcode ha cambiado un poco de una versión a la siguiente, así que aquí es donde actualiza el plist para 9.0 beta 4 si ayuda a Project -> Target -> Info