Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 10 GM release error when submitting apps "app attempts to access privacy-sensitive data without a usage description" due to GoogleSignIn, AdMob

I just started facing this issue with the iOS 10 GM release. I received an email saying:

To process your delivery, the following issues must be corrected:

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

Once the required corrections have been made, you can then redeliver the corrected binary.

Regards,

The App Store team

I am using google GoogleSignIn. I am not using Firebase, but when installing GoogleSignIn with cocoa pods, I saw in the logs it automatically installed Firebase.

Is there something we can do other than having to define these keys as my app has nothing to do with camera / photos etc and hence I don't want users to think we are using them.

I notice someone else has also faced this issue: https://forums.developer.apple.com/thread/62229

like image 601
sudoExclaimationExclaimation Avatar asked Sep 08 '16 05:09

sudoExclaimationExclaimation


3 Answers

Here's a link to a complete workaround from Google: https://groups.google.com/d/msg/google-admob-ads-sdk/UmeVUDrcDaw/HIXR0kjUAgAJ

More info at that link, but TL;DR version is you have to add three items to your plist:

<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>
like image 102
kevcol Avatar answered Nov 20 '22 19:11

kevcol


in iOS 10 you need to add the key mentioned in below image if you are using camera or photo gallery in your appenter image description here

like image 31
Pritesh Avatar answered Nov 20 '22 17:11

Pritesh


In iOS 10 Apple have made it a requirement to define the usage description in the Info.plist for any feature that requires a popup. See http://useyourloaf.com/blog/privacy-settings-in-ios-10/

During the beta program, apps would crash at the time they would show the prompt if the usage description was not set.

It looks like the iTunes Connect validation tools have been changed to look for references in the app to classes that are associated with permission-related objects. If there isn't an Info.plist entry, they reject the binary.

I saw this in one of my own apps where I had an old helper method in a library that detected whether the camera existed or not. Even though the app never called that method, it was being linked into my binary because I did use another method in the same file. That app didn't use the camera and so didn't define the Info.plist entry. And it was rejected. I simply removed my helper method and moved the checks into the other apps that did use it.

However, AdMob seems to have references to the Calendar so an app I have which uses ads, and does not use the Calendar itself, can't be submitted. Thanks Google!

like image 13
Geoff Hackworth Avatar answered Nov 20 '22 18:11

Geoff Hackworth