sunnycupertino / cordova-plugin-admob-simple

Cordova plugin allowing Admob interstitials and banner ads.
MIT License
164 stars 150 forks source link

Plugin causes Apple rejection #22

Closed blukis closed 6 years ago

blukis commented 6 years ago

I included this plugin in my app with this in my config.xml (I'm building using PhoneGap Build): <plugin name="cordova-plugin-admob-simple" version="3.3.4"/>

When I send .ipa to Apple App Store using Application Loader, I get a failure notification (email) back from Apple with this message: "Missing Info.plist key - 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."

When I remove only the above line from my config.xml, Apple accepts binary OK. I suspect this plugin is causing apps to be rejected by Apple. Can it be fixed?

sunnycupertino commented 6 years ago

The Admob plugin requires the NSCalendars library. Add this to your plist file.

NSCalendarsUsageDescription Some ad content may access calendar
blukis commented 6 years ago
<key>NSCalendarsUsageDescription</key>
<string>Some ad content may access calendar</string>

Thanks. But hmm, if I'm not comfortable passing this requirement onto my users, am I out of luck? Is it a 3rd party dependency that requires this access, or "cordova-plugin-admob-simple" itself? Could you point me to any info relating to what the ad service is doing with user calendar info? Thanks!

blukis commented 6 years ago

Doing a bit of searching... this forum reply (Nov 18, 2016 reply) seems to indicate AdMob SDK removed this access requirement as of SDK version 7.11.0. https://forums.developer.amazon.com/questions/39059/why-does-ios-app-with-amazon-mobile-ads-require-ns.html

Release notes here seem to corroborate, "Apps no longer need to provide text for NSCalendarsUsageDescription and NSBluetoothPeripheralUsageDescription when updating apps for iOS 10." https://developers.google.com/mobile-ads-sdk/docs/dfp/ios/rel-notes

Is it possible this plugin could avoid the access requirement with an AdMob SDK version update? Thanks!

sunnycupertino commented 6 years ago

I see. Yes we need to update the admob SDK to overcome this.

blukis commented 6 years ago

Is this a change you plan to make in this plugin? Would you anticipate the update would come soon? Thanks!

sunnycupertino commented 6 years ago

Yes within a couple of weeks hopefully.

sunnycupertino commented 6 years ago

The admob ios sdk has been updated to the latest version now.

blukis commented 6 years ago

How do I get this update in my app? This plugin version hasn't changed since issue was raised (3.3.4), and seems to be no commits to this repository in this timeframe. Is this a change outside of this repo somehow? Thanks. (And sorry for the confusion.)

sunnycupertino commented 6 years ago

The update to the iOS library took place in another package that it links to. You can see here https://github.com/sunnycupertino/cordova-admob-sdklibs/commit/c56659d8beaf3c62601a4bf564d44c46e31614c3

As for how to update, that depends on what framework you are using. Please refer to their docs.

blukis commented 6 years ago

Got it - thanks!