auth - 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
google sign in swift 4 (9)
¿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! Verifica eso dos veces.
Parte de la descripción del permiso de uso se hizo obligatoria en iOS 10.
Acabo de comenzar a enfrentar este problema con el lanzamiento 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 usa estos datos.
Una vez que se han realizado las correcciones requeridas, puede volver a entregar el binario corregido.
Saludos,
El equipo de la App Store
Estoy usando google GoogleSignIn. No estoy usando Firebase, pero cuando instalé GoogleSignIn con vainas de cacao, vi en los registros que instalaba automáticamente Firebase.
¿Hay algo que podamos hacer además 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í están todas las claves de privacidad. Necesitamos agregarlas manualmente en la lista de información 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
Aquí hay un enlace a una solución alternativa 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>
Asegúrese de agregar esta clave si es ArcGIS.framework de ESRI.
Corregido en 7.11.0 firebase.google.com/docs/admob/release-notes
Asegúrate de actualizar el SDK
En iOS 10, Apple ha exigido que se defina la descripción del 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 configuró 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 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 auxiliar en una biblioteca que detectaba si la cámara existía o no. Aunque la aplicación nunca llamó a ese método, estaba vinculada a mi binario porque sí utilicé 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 cheques a las otras aplicaciones que lo usaron.
Sin embargo, AdMob parece tener referencias al Calendario, por lo que no puedo enviar una aplicación que tengo que usa anuncios y no usa el Calendario en sí. Gracias google!
EDITAR:
consulte la respuesta anterior
https://.com/a/39476283/1634905
que enumera la solución oficial de google.
NOTA: a la solución alternativa le falta una clave adicional que también será necesaria:
NSCameraUsageDescription
Solución alternativa que utilicé: los marcos de trabajo de Google para AdMob y GoogleSignIn instalan firebase automáticamente, que utiliza dichos permisos aunque la aplicación nunca lo haga.
Después de definir
NSCameraUsageDescription
en
info.plist
, me permitió enviar sin problemas con la esperanza de que la aplicación no avise al usuario nunca para que tampoco vea el texto.