NSCameraUsageDescription en iOS 10.0 runtime crash?

Usando iOS 10.0 última versión beta. Intenté usar Camera para escanear 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 confidenciales sin una descripción de uso. El Info.plist de la aplicación debe contener una clave NSCameraUsageDescription con un valor de cadena que explique al usuario cómo utiliza la aplicación estos datos.

¿Pon esta clave en el plist, pero todavía se colgó?

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 con 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 este enlace.

Como Apple ha cambiado la forma en que puede acceder a cualquier tipo de datos privados de usuario en iOS 10 .

Info.plist agregar la clave ” Privacy - Camera usage description ” al Info.plist su aplicación y la información de uso que se aplica a su aplicación, como se muestra en el ejemplo siguiente que proporcioné y que he utilizado para escanear códigos de barras.

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

enter image description here

Debe agregar esta clave debajo en info.plist.

NSCameraUsageDescription Or Privacy - Camera usage description

Y agrega una descripción del uso.

Las capturas de pantalla detalladas están disponibles en este enlace

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

 NSCameraUsageDescription Camera usage description 

Use estos valores brutos y copie en info.plist

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

la interfaz de usuario de xcode ha cambiado un poco de una versión a la siguiente, por lo que aquí es donde se actualiza el plist para 9.0 beta 4 si esto ayuda a Project -> Target -> Info enter image description here

Otro caso al que me enfrenté al intentar usar la cámara, fue que todavía estaba ocupado _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 obtener nada tangible de la stack de llamadas, se cambió al “Organizador” y miró los informes de fallas en el dispositivo. Descubrí que en realidad se quejaba de la privacidad debido a la “Descripción de uso de micrófono” que faltaba. Añadí eso y me deshice de una interrupción tan críptica.

Para ello, agrega una clave de uso al Info.plist de tu aplicación junto con una cadena de propósito. NSCameraUsageDescription Especifica el motivo por el que su aplicación tiene acceso a la cámara del dispositivo

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html