Hello iOS developers,
If you’ve attempted to update your apps for iOS 10 in iTunes connect right now, you’ll see 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 NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data.”
To work around these errors, please add the following keys and descriptions to your app’s Info.plist to be compliant with the App Store’s privacy policy:
<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>
The photo library usage description is important too. It’s not currently flagged by iTunes Connect, but is used by the SDK for MRAID v2 creatives. If you don’t include it, your app will crash on iOS 10 devices if an MRAID ad uses photo library features.
We are also planning an SDK update early next week to remove the NSBluetoothPeripheralUsageDescription requirement. It will also guard against the MRAID photo library crash in the event that you forget to add NSPhotoLibraryUsageDescription to your Info.plist.
Thanks,
Eric
- Until an ad appears that requires one of these permissions, everything runs as normal
- If an ad loads that utilizes calendar, photo library, or bluetooth, the app will pop up a notification for users to allow access before the ad loads
- If users do not choose to allow access, that ad will not load.
- A new ad will load if not allowed, or the 30/60 second refresh will occur to load next ad after one that failed to load
Is that the expected behavior with these keys set for iOS 10?
How frequent are ads that create calendar events, store photos, or use bluetooth?
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.
- Firebase/Auth (3.10.0):
- Firebase/Core
- FirebaseAuth (= 3.0.6)
- Firebase/Core (3.10.0):
- FirebaseAnalytics (= 3.6.0)
- FirebaseCore (= 3.4.5)
- Firebase/Crash (3.10.0):
- Firebase/Core
- FirebaseCrash (= 1.1.4)
- Firebase/Database (3.10.0):
- Firebase/Core
- FirebaseDatabase (= 3.1.1)
- Firebase/Messaging (3.10.0):
- Firebase/Core
- FirebaseMessaging (= 1.2.1)
- FirebaseAnalytics (3.6.0):
- FirebaseCore (~> 3.4)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleToolboxForMac/NSData+zlib (~> 2.1)
- FirebaseAuth (3.0.6):
- FirebaseAnalytics (~> 3.4)
- GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)
- GTMSessionFetcher/Core (~> 1.1)
- FirebaseCore (3.4.5):
- GoogleInterchangeUtilities (~> 1.2)
- GoogleToolboxForMac/NSData+zlib (~> 2.1)
- FirebaseCrash (1.1.4):
- FirebaseAnalytics (~> 3.5)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleToolboxForMac/Logger (~> 2.1)
- GoogleToolboxForMac/NSData+zlib (~> 2.1)
- FirebaseDatabase (3.1.1):
- FirebaseAnalytics (~> 3.5)
- FirebaseInstanceID (1.0.8)
- FirebaseMessaging (1.2.1):
- FirebaseAnalytics (~> 3.4)
- FirebaseInstanceID (~> 1.0)
- GoogleInterchangeUtilities (~> 1.2)
- GoogleSymbolUtilities (~> 1.1)
- GoogleToolboxForMac/Logger (~> 2.1)
- GoogleInterchangeUtilities (1.2.2):
- GoogleSymbolUtilities (~> 1.1)
- GoogleSymbolUtilities (1.1.2)
- GoogleToolboxForMac/DebugUtils (2.1.0):
- GoogleToolboxForMac/Defines (= 2.1.0)
- GoogleToolboxForMac/Defines (2.1.0)
- GoogleToolboxForMac/Logger (2.1.0):
- GoogleToolboxForMac/Defines (= 2.1.0)
- GoogleToolboxForMac/NSData+zlib (2.1.0):
- GoogleToolboxForMac/Defines (= 2.1.0)
- GoogleToolboxForMac/NSDictionary+URLArguments (2.1.0):
- GoogleToolboxForMac/DebugUtils (= 2.1.0)
- GoogleToolboxForMac/Defines (= 2.1.0)
- GoogleToolboxForMac/NSString+URLArguments (= 2.1.0)
- GoogleToolboxForMac/NSString+URLArguments (2.1.0)
- GTMSessionFetcher/Core (1.1.7)
Thanks,
chao