Error de lanzamiento de iOS 10 GM al enviar aplicaciones "la aplicación intenta acceder a datos sensibles a la privacidad sin una descripción de uso" debido a GoogleSignIn, AdMob

79

Acabo de comenzar a enfrentar este problema con la versión de iOS 10 GM. Recibí un correo electrónico que decía:

Para procesar su entrega, se deben corregir los siguientes problemas:

Esta aplicación intenta acceder a datos sensibles a la privacidad 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 la aplicación utiliza estos datos.

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

Saludos,

El equipo de la App Store

Estoy usando Google GoogleSignIn. No estoy usando Firebase, pero al instalar GoogleSignIn con las vainas de cacao, vi en los registros que instaló Firebase automáticamente.

¿Hay algo que podamos hacer además de tener que definir estas claves, 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?

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

Pranoy C
fuente
Parece que Google está trabajando en una solución: groups.google.com/forum/#!category-topic/google-admob-ads-sdk/…
Stefan
1
corregido en 7.11.0 firebase.google.com/docs/admob/release-notes
ayalcinkaya

Respuestas:

94

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

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

<key>NSCalendarsUsageDescription</key>
<string>Advertisement would like to create a calendar event.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Advertisement would like to store a photo.</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Advertisement would like to use bluetooth.</string>
kevcol
fuente
2
parece que falta la "NSCameraUsageDescription", aunque la mía se quejaba
Pranoy C
Con la versión 7.11.0 de su SDK, esto ya no es necesario, solo se actualiza y funciona.
¿Cómo haces esto? Info.plist parece ser un archivo binario. Puedo leer los nombres de las claves, pero están rodeados de un montón de personajes sin sentido.
Brian Knoblauch
Agregué esto en el archivo plist pero aún tengo el mismo problema. . . sigue recibiendo el mismo correo después del proceso de compilación. .
Naman Vaishnav
28

en iOS 10, debe agregar la clave mencionada en la imagen a continuación si está usando la cámara o la galería de fotos en su aplicacióningrese la descripción de la imagen aquí

Pritesh
fuente
13

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

Durante el programa beta, las aplicaciones se bloquean en el momento en que muestran el mensaje si no se establece la descripción de uso.

Parece que las herramientas de validación de iTunes Connect se han cambiado para buscar referencias en la aplicación a clases 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 método auxiliar antiguo en una biblioteca que detectaba si la cámara existía o no. Aunque la aplicación nunca llamó a ese método, estaba vinculado a mi binario porque usé otro método en el mismo archivo. Esa aplicación no usó la cámara y, por lo tanto, no definió la entrada Info.plist. Y fue rechazado. Simplemente eliminé mi método de ayuda y moví los controles a las otras aplicaciones que lo usaron.

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

Geoff Hackworth
fuente
1
Estás en lo correcto. Los marcos de Google para AdMob y GoogleSignIn instalan firebase automáticamente, que usa dichos permisos, aunque la aplicación nunca usa la cámara. Después de definir NSCameraUsageDescription, me dejó enviar sin problemas con la esperanza de que la aplicación no le pregunte al usuario nunca para que tampoco vea el texto. Pero Google realmente debería arreglar esto, esto suena como algo muy sospechoso de espiar a través de la cámara o algo así.
Pranoy C
9

Tienes permiso de la cámara en Info.Plist. vaya a Info.plist y agregue el siguiente código.

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

Ver esta referencia: ingrese la descripción de la imagen aquí

Kirit Modi
fuente
5

Aquí están todas las claves de privacidad, debemos agregarlas manualmente a 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
Kiran K
fuente
CallKit no necesita autorización ni descripción de uso
user102008
3

EDITAR: consulte la respuesta anterior https://stackoverflow.com/a/39476283/1634905 que enumera la solución oficial de Google. TENGA EN CUENTA que a la solución alternativa le falta una clave adicional que también será necesaria:NSCameraUsageDescription

Solución alternativa que utilicé: los marcos de Google para AdMob y GoogleSignIn instalan firebase automáticamente, que usa dichos permisos, aunque la aplicación nunca lo hace. Después de definir NSCameraUsageDescriptionen el info.plist, me dejó enviar sin problemas con la esperanza de que la aplicación no le pregunte al usuario nunca para que tampoco vean el texto.

Pranoy C
fuente
2

¿Es posible que Google Framework use 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? Comprueba eso.

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

Oso grizzly
fuente
3
Estás en lo correcto. Los marcos de Google para AdMob y GoogleSignIn instalan firebase automáticamente, que usa dichos permisos, aunque la aplicación nunca lo hace. Después de definir NSCameraUsageDescription, me dejó enviar sin problemas con la esperanza de que la aplicación no le pregunte al usuario nunca para que tampoco vea el texto. Pero Google realmente debería arreglar esto, esto suena como algo muy sospechoso de espiar a través de la cámara o algo así.
Pranoy C
0

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

Marius
fuente