App Rejected by Apple because of an iAd Issue

mor911

  • Posts: 49
So I submitted my app to Apple. 7 long days later it's rejected. Here's the Note:

"We found your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as required by the App Store Review Guidelines.

Specifically, section 3.3.12 of the iOS Developer Program License Agreement states:

"You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier."

Note: iAd does not use the AdSupport framework, ASIdentifierManager, or the Advertising Identifier. Therefore they are not required for iAd implementations and should not be included in your app for iAd support.

If your app is serving ads, please:

- Ensure that you have tested your app on a device, not just the simulator, and that you have removed all previous versions of your app prior to testing

- Provide us the steps to locate ads in your app

If your app does not serve ads, please check your code - including any third-party libraries - to remove any instances of:

class: ASIdentifierManager
selector: advertisingIdentifier
framework: AdSupport.framework

If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality.

To help locate the Advertising Identifier, use the “nm” tool. For information on the “nm” tool, please see the nm man page.

If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.
"

It looks like an issue with the way i used iAd? Here's how I drop the ad :

When Created:
     Show Mobile Ad

Thats it. Any idea what I'm doing wrong?

« Last Edit: July 21, 2014, 07:01:09 am by mor911 »

rob1221

  • *
  • Posts: 9473
Are you using any extensions?


rob1221

  • *
  • Posts: 9473
That extension uses the AdSupport framework, so yes.


Majora64

  • Posts: 536
The code you use for showing ads is pretty straight forward and that's currently how i have mine set up. thats all you need to do right? admob is just an optional extension but it's not supported for ios is that correct? so by removing your admob extension you should be good right? Just wondering as Im in the works of submitting as well so your experiences and knowledge would be appreciated!

mor911

  • Posts: 49
The code you use for showing ads is pretty straight forward and that's currently how i have mine set up. thats all you need to do right? admob is just an optional extension but it's not supported for ios is that correct? so by removing your admob extension you should be good right? Just wondering as Im in the works of submitting as well so your experiences and knowledge would be appreciated!
Welp, assuming rob1221 is right (6k+ posts here has gained my trust lol), the AdMob code (which like you said: is not supported on iOS) was causing it by just being there. Lesson learned, use a whole different project for the android version.

I just resubmitted to apple so I will let you now.

Majora64

  • Posts: 536
Sweet. i was gonna use admob for my ios cause someone told me you can but in stencyl it says (android only) so i just left it at that and hoped by enabling iads and using that code block then that'd be that. goodluck. keep us up to date, and I can't wait to see your game!

rob1221

  • *
  • Posts: 9473
The Admob extension does support iOS which is why it uses the AdSupport framework in the first place.  This is different than the default Admob support in Stencyl that is only for Android.

Majora64

  • Posts: 536
oh i see. thats what he must have meant when he said it could be used. thanks for clearing it up!

chazzwick

  • Posts: 32
My app just got rejected because of this too. I disabled the admob extension, removed admob and the android sdk's from the Stencyl folder and have re-published my game to iOS. Going to submit it again now and see how it goes. I have also used the 'When Created - Show Mobile Ad' block for most of my scenes. Hopefully the app won't be rejected this time. Good to see that you're not the only one with this problem, so I'm interested and wanting to know how you get on. Good luck mor911.

« Last Edit: July 11, 2014, 05:21:41 pm by chazzwick »

mor911

  • Posts: 49
Hi everyone... Just wanted to update you. I removed the AdMob extension and removed every instance where I called admob via the extension. I still got this reply from Apple  :( :

Thank you for your resubmission.

PLA 3.3.12

We continue to find that your app uses the iOS Advertising Identifier but does not include ad functionality. This does not comply with the terms of the iOS Developer Program License Agreement, as required by the App Store Review Guidelines.

Specifically, section 3.3.12 of the iOS Developer Program License Agreement states:

"You and Your Applications (and any third party with whom you have contracted to serve advertising) may use the Advertising Identifier, and any information obtained through the use of the Advertising Identifier, only for the purpose of serving advertising. If a user resets the Advertising Identifier, then You agree not to combine, correlate, link or otherwise associate, either directly or indirectly, the prior Advertising Identifier and any derived information with the reset Advertising Identifier."

Note: iAd does not use the AdSupport framework, ASIdentifierManager, or the Advertising Identifier. Therefore they are not required for iAd implementations and should not be included in your app for iAd support.

If your app is serving ads, please:

- Ensure that you have tested your app on a device, not just the simulator, and that you have removed all previous versions of your app prior to testing

- Provide us the steps to locate ads in your app

If your app does not serve ads, please check your code - including any third-party libraries - to remove any instances of:

class: ASIdentifierManager
selector: advertisingIdentifier
framework: AdSupport.framework

If you are planning to incorporate ads in a future version, please remove the Advertising Identifier from your app until you have included ad functionality.

To help locate the Advertising Identifier, use the “nm” tool. For information on the “nm” tool, please see the nm man page.

If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool lists the methods that the library calls, and "otool -ov" will list the Objective-C class structures and their defined methods. These techniques can help you narrow down where the problematic code resides.


So now I'm kind of stuck wondering where I went wrong. Any advice? Should I attempt to export as an XCode project and try some wizardry there?

mor911

  • Posts: 49
Looking further, I disabled AdMob, but never removed the admob dir from the engine-extensions dir in the stencylworks directory. Would i just being there cause this? Would I compile it just because it's there even if it isn't used?

rob1221

  • *
  • Posts: 9473
I'm not sure.  You may have to do a text search through your generated game folder to find any references to the three things Apple doesn't want you to have.  Maybe then you can narrow down what the cause is.

mor911

  • Posts: 49
ok... Thanks rob1221! You're very helpful.

The include.xml for the facebook extension (yes the one that doesn't work on 3.1) has this line:

<dependency name="AdSupport.framework"/>

and the include.xml for the admob extension has:

<dependency name="AdSupport.framework" if="ios" />

I removed both because I don't use either. Going to try and build and re-submit to Apple. Crossing fingers.