Error de versión de iOS 10 GM al enviar aplicaciones “la aplicación intenta acceder a datos confidenciales sin una descripción de uso” debido a GoogleSignIn, AdMob

Empecé a enfrentar este problema con el lanzamiento iOS 10 GM. Recibí un correo electrónico diciendo:

Para procesar su entrega, los siguientes problemas deben ser corregidos:

Esta aplicación intenta 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.

Una vez que se hayan realizado las correcciones necesarias, puede volver a enviar el binario corregido.

Saludos,

El equipo de App Store

Estoy usando google GoogleSignIn. No estoy usando Firebase, pero cuando instalé GoogleSignIn con módulos de cocoa, vi en los registros que instaló Firebase automáticamente.

¿Hay algo que podamos hacer aparte de tener que definir estas teclas ya que mi aplicación no tiene nada que ver con la cámara / fotos, etc. y, por lo tanto, no quiero que los usuarios piensen que las estamos usando?

Noté que alguien más también se ha enfrentado a este problema: https://forums.developer.apple.com/thread/62229

Aquí hay un enlace a una solución completa de Google: https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ

Más información en ese enlace, pero en la versión TL; DR, debe agregar tres elementos a su lista:

NSCalendarsUsageDescription Advertisement would like to create a calendar event. NSPhotoLibraryUsageDescription Advertisement would like to store a photo. NSBluetoothPeripheralUsageDescription Advertisement would like to use bluetooth. 

en iOS 10 necesitas agregar la clave mencionada en la imagen siguiente si estás utilizando una cámara o galería de fotos en tu aplicación enter image description here

En iOS 10, Apple ha establecido como requisito definir la descripción de uso en Info.plist para cualquier característica que requiera una ventana emergente. Ver http://useyourloaf.com/blog/privacy-settings-in-ios-10/

Durante el progtwig beta, las aplicaciones colapsarían en el momento en que mostrarían el aviso si no se configuraba la descripción del uso.

Parece que las herramientas de validación de iTunes Connect se han cambiado para buscar referencias en la aplicación a clases que están asociadas con objetos relacionados con permisos. Si no hay una entrada Info.plist, rechazan el binario.

Vi esto en una de mis propias aplicaciones donde tenía un viejo método de ayuda en una biblioteca que detectaba si la cámara existía o no. A pesar de que la aplicación nunca llamó a ese método, estaba siendo vinculado a mi binario porque usé otro método en el mismo archivo. Esa aplicación no usó la cámara, por lo que no definió la entrada Info.plist. Y fue rechazado. Simplemente eliminé mi método de ayuda y moví los cheques a las otras aplicaciones que sí lo usaban.

Sin embargo, parece que AdMob tiene referencias al Calendario, por lo que no se puede enviar una aplicación que utilice anuncios y no use el Calendario en sí. Gracias Google!

Tienes permiso de Camera in Info.Plist. vaya a Info.plist y agregue el código siguiente.

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

Ver esta ref: enter image description here

Aquí están todas las claves de privacidad. Necesitamos agregarlas manualmente al Info.plist con una breve descripción.

 • Bluetooth Sharing – NSBluetoothPeripheralUsageDescription • Calendar – NSCalendarsUsageDescription • CallKit – NSVoIPUsageDescription • Camera – NSCameraUsageDescription • Contacts – NSContactsUsageDescription • Health – NSHealthShareUsageDescription & NSHealthUpdateUsageDescription • HomeKit – NSHomeKitUsageDescription • Location – NSLocationUsageDescription, NSLocationAlwaysUsageDescription, NSLocationWhenInUseUsageDescription • Media Library – NSAppleMusicUsageDescription • Microphone – NSMicrophoneUsageDescription • Motion – NSMotionUsageDescription • Photos – NSPhotoLibraryUsageDescription • Reminders – NSRemindersUsageDescription • Speech Recognition – NSSpeechRecognitionUsageDescription • SiriKit – NSSiriUsageDescription • TV Provider – NSVideoSubscriberAccountUsageDescription 

EDITAR: Consulte la respuesta anterior https://stackoverflow.com/a/39476283/1634905 que enumera la solución oficial de google. NSCameraUsageDescription CUENTA que a la solución alternativa le falta una clave adicional que también se requerirá: NSCameraUsageDescription

Solución de solución de problemas que utilicé: los marcos de trabajo de Google para AdMob y GoogleSignIn instalan automáticamente Firebase, que usa esos permisos aunque la aplicación nunca lo haga. Después de que NSCameraUsageDescription en info.plist , me permitió enviar sin problemas la esperanza de que la aplicación no le avise al usuario para que no vea el texto.

¿Es posible que Google Framework utilice algún marco de sistema adicional que requiera el permiso del usuario (es decir, la posición del usuario) y se olvide de agregar la descripción relacionada en el archivo .plist! Verifica eso.

Parte de la descripción del permiso de uso se volvió obligatoria en iOS 10.

Corregido en 7.11.0 https://firebase.google.com/docs/admob/release-notes

Asegúrese de actualizar el SDK

Asegúrese de agregar esta clave si es ArcGIS.framework de ESRI.