lawicko
lawicko

Reputation: 7344

Xcode8 submission error - how to find out what exactly requires specific permissions on iOS10

When trying to submit the app, I get the following error:

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.

I know I could just add a description to make the new validator happy, but my app doesn't use the user calendar, so I'd rather eliminate the dependency that uses it, if possible. I wasn't able to figure out how do I find out which dependency actually uses the calendar, how do check this?

My project has the following dependencies:

pod 'SnapKit', '0.22.0'
pod 'FBSDKCoreKit'
pod 'Alamofire', '~> 3.5'
pod "AFNetworking", '~> 3.1'
pod 'SDWebImage'      
pod 'TTTAttributedLabel'
pod 'Masonry'
pod 'CocoaLumberjack/Swift', '2.3'
pod 'SZTextView'
pod 'HockeySDK', :subspecs => ['CrashOnlyLib']
pod 'GoogleMaps'
pod 'BugfenderSDK'
pod 'AppsFlyerFramework', '4.5.0'
pod 'CHTCollectionViewWaterfallLayout'
pod 'Firebase'
pod 'Firebase/Messaging'
pod 'CRToast', '~> 0.0.7'
pod 'Google-Mobile-Ads-SDK'
pod 'UIColor_Hex_Swift', :git => 'https://github.com/yeahdongcn/UIColor-Hex-Swift.git', :tag => '2.3'

And the linked frameworks:

List of linked frameworks

Upvotes: 0

Views: 293

Answers (2)

lawicko
lawicko

Reputation: 7344

So I have contacted Apple, and they actually have a nice list of all the APIs and the permissions that they require. You can find it here (Technical Q&A QA1937).

Upvotes: 1

Ravi Dhorajiya
Ravi Dhorajiya

Reputation: 1531

i think it's helpful for information for you.

I can see in Google-Mobile-Ads-SDK file that it references the libraries associated with these permissions. and also Google's frameworks for AdMob and GoogleSignIn installs firebase automatically which uses such permissions even though the app never does. After I defined NSCameraUsageDescription in the info.plist, it let me submit without problem hoping that the app won't prompt the user ever so they won't see the text either.

Many Advertising SDKs, such as AdMob, have EventKit as a required framework. Until then you can workaround by adding NSCalendarsUsageDescription to your info.plist. I also had to do the same with NSBluetoothPeripheralUsageDescription

Edit: Very important to also add the NSPhotoLibraryUsageDescription one as well see: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/UmeVUDrcDaw

Upvotes: 0

Related Questions