iOS 10 Error on Submit

Just tried to upload our app and got the following errors:


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


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


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



Just started getting this with the GM Seed and no prior versions. Note that we're not accessing the Calendar, Photo Library, or Bluetooth, so am very confused.


I've also verified we're not linking to the EventKit, EventKitU, Photos, PhotosUI, or to the CoreBluetooth frameworks.


Anyone else seeing this?


rob.

Accepted Reply

Starting with iOS 10, purpose strings are required for access to any protected class of data from within your app, including usage of those protected data classes by any 3rd party library your app uses. If you are receiving a message about a missing purpose string for a data class you don't recognize, consult with your 3rd party library vendors about their usage of that protected data class.


For more detailed information, consult the following resources:

Replies

Working with Unity and having the same annoying problem but with the camera. Is Unity requesting using the camera in some way?


"The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data."


😟

I was having the same problem with NSCalendarsUsageDescription, NSPhotoLibraryUsageDescription and NSCameraUsageDescription.


I'm working with Unity 5.4 and Heyzap, Chartboost and Unity Ads. I updated the heyzap sdk to the 9.6.8 version that it's supposed to fix this.

The calendar and photolibrary errors are gone, but the NSCameraUsageDescription problem is still there. I'm wondering now if is a Heyzap problem or maybe Chartboost or Unity but I can't find anything 😟

Any way of validating this before submitting the build?

The latest Heyzap SDK should be clear of any of those warnings. I would update all your third party SDKs to the latest version to try to fix this problem. Even if the Heyzap website doesn't offer those versions as a download, new versions are almost always compatible.


Sorry about the hassle,

Max, iOS engineer at Heyzap

I'm also having this problem with an existing unity app that we're updating today.


Can anyone post what would be acceptable language to add to the string to get this approved? We aren't rebuilding the app (this was a screen shot update only) so removing the offending framework isn't an option.

Yep. We're seeing this with the Photo Library. We don't reference it in the native code, so likely it's in the Vasco libraries we're using.

I have the same problem, is there a fix known now ?

add following code in plist then no issue,add more resons regarding bluetooth like this my,delivery is succefull with xcode 8 with this,open plist with texteditor and paste it


<key>NSCalendarsUsageDescription</key>

<string>Some ad content may access calendar</string>

<key>NSCalendarsUsageDescription</key>

<string>Some ad content may access calendar</string>

I have the same problem as you had. Did you get to fix it? If you did, how? Than you very much in advance

I've also tried localizing the NSPhotoLibraryUsageDescription and NSBluetoothPeripheralUsageDescription but the app is rejected saying those keys are not defined. This is nonsense, they are defined by the InfoPlist.strings file. They properly localize the sentance when the permission prompt is shown. Yet the submission to Itunes Connect always fails.


I've submitted this specific question here: https://forums.developer.apple.com/message/185282

The usage description must still be defined in Info.plist, even if you have localized versions present in InfoPlist.strings.

I include the description strings in both file and the app is still being rejected 😐

Same problem, trying to solve this now 😟

Hello Everyone,


This solution worked for me. Use the following link to find the correct info plist keys you should be adding. Manually insert the descripiton and respective string into your .infoplist then build and submit to iTunes Connect.


https://developer.apple.com/library/content/qa/qa1937/_index.html

You resolved? How to solve?

Thanks Casey! My build kept disappearing, but after discovering a few missed emails from apple, calling out issues around my NSPhotoLibraryUsageDescription. I'd recommend folks to check their emails 😀