So I got this mail today saying that the latest build of my app was rejected by iTunes Connect due to some missing usage descriptions. To be exact:
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSContactsUsageDescription 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 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.
This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription 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 NSMotionUsageDescription key with a string value explaining to the user how the app uses this data.
Once these issues have been corrected, you can then redeliver the corrected binary.
I figured out that these have become mandatory with iOS 10, but the only problem is that my app is not requesting permission to access any of these.. I thought the description only was mandatory if you actually requested a permission?
Is it because one of my dependencies (Cocoapods) might contain some code to request these permissions? Or are these descriptions mandatory even if I never request to see the users calendar, contacts, etc?
iOS 10 must add permission in info.plist just review this BLOG :- settings-in-ios-10 you get all idea.
Add permission in info.plist file base on your error log.
Note: Write proper reason for permission in string value otherwise apple reject app again.
NSCameraUsageDescription
<key>NSCameraUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSContactsUsageDescription
<key>NSContactsUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSPhotoLibraryUsageDescription
<key>NSPhotoLibraryUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSBluetoothPeripheralUsageDescription
<key>NSBluetoothPeripheralUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSMicrophoneUsageDescription
<key>NSMicrophoneUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSMotionUsageDescription
<key>NSMotionUsageDescription</key>
<string>$(PRODUCT_NAME) motion use.</string>
NSLocationAlwaysUsageDescription
<key>NSLocationAlwaysUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSLocationUsageDescription
<key>NSLocationUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSLocationWhenInUseUsageDescription
<key>NSLocationWhenInUseUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSRemindersUsageDescription
<key>NSRemindersUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSSiriUsageDescription
<key>NSSiriUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSVideoSubscriberAccountUsageDescription
<key>NSVideoSubscriberAccountUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSSpeechRecognitionUsageDescription
<key>NSSpeechRecognitionUsageDescription</key>
<string>You have to describe the real usage for a human.</string>
NSCalendarsUsageDescription
<key>NSCalendarsUsageDescription</key>
<string>You have to describe the real usage for a human.</string>