Reputation: 7344
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:
Upvotes: 0
Views: 293
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
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