iTunes Connect upload rejected with invalid binary because of missing NSCalendarsUsageDescription

痞子三分冷 提交于 2019-11-30 17:29:16
Stephen

I've sent an email to Google complaining about this and hopefully it will get resolved in future versions of the AdMob SDK. 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

Update Sep 18, 2016: Google has released version 7.11.0 which removes the need to have any of these.

If you use the EventKit framework, this can trigger the automated rejection you received from Apple. One solution is to remove that framework.

Many Advertising SDKs, such as Tapjoy (before version 11.8.1) and AdMob, have EventKit as a required framework.

If you have EventKit framework in your application because it is necessary for your advertising SDK, I have seen this rejection avoided with the following modification to the .plist file:

<key>NSCalendarsUsageDescription</key>
<string>Some ad content may access calendar</string>
GabLeRoux

Stephen and Zachary Drake's answers are right :)

On my side, my xcode project gets generated each time so here's a way to set these values from command line using PlistBuddy (I also needed NSCameraUsageDescription):

/usr/libexec/PlistBuddy -c "Add :NSCameraUsageDescription string" ./Info.plist || true
/usr/libexec/PlistBuddy -c "Set :NSCameraUsageDescription 'not used'" ./Info.plist

/usr/libexec/PlistBuddy -c "Add :NSCalendarsUsageDescription string" ./Info.plist || true
/usr/libexec/PlistBuddy -c "Set :NSCalendarsUsageDescription 'Some ad content may access calendar'" ./Info.plist

/usr/libexec/PlistBuddy -c "Add :NSPhotoLibraryUsageDescription string" ./Info.plist || true
/usr/libexec/PlistBuddy -c "Set :NSPhotoLibraryUsageDescription 'Some ad content may access photo library'" ./Info.plist

using Xcode V9 with build target IOS 10.0, I had to add this to the local.plist not the main app plist:

 {
     "NSCalendarsUsageDescription" = "This App needs to use your calendar";
 }
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!