应用由于AdSupport.framework而被拒绝 [英] App rejected due to AdSupport.framework

查看:857
本文介绍了应用由于AdSupport.framework而被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用刚刚被拒绝,并显示以下消息:


PLA 3.3.12



我们发现您的应用使用了iOS广告标识符,但
不包含广告功能。这不符合应用程序
商店审查指南要求的
iOS开发者计划许可协议的条款。



特别是本节iOS开发者计划许可
协议的3.3.12规定:



您和您的应用程序(以及与您签订了
合同的任何第三方以投放广告)只能将广告标识符
以及通过使用广告
标识符获得的任何信息仅用于投放广告。如果用户
重置了广告标识符,那么您同意不将
关联,链接或以其他方式直接或间接地关联
先前的广告标识符和任何衍生信息与
重置的广告标识符。



注意:iAd不使用AdSupport框架,ASIdentifierManager,
或广告标识符。因此,iAd
实施不需要它们,并且不应该在iAd
支持的应用程序中包含它们。



如果您的应用正在投放广告,请:




  • 确保您已在设备(不仅是模拟器)上测试了您的应用,并且在测试之前已删除应用的所有先前版本


  • 向我们提供在您的应用中定位广告的步骤




如果您的应用不提供广告,请检查您的代码-包括任何
第三方库-删除以下任何实例:



类:ASIdentifierManager选择器:adsingIdentifier框架:
AdSupport.framework



如果您打算在以后的版本中加入广告,请在您拥有
个广告功能之前,
从您的应用中删除广告标识符。



要帮助找到广告标识符,请使用 nm工具。有关 nm工具的
信息,请参见nm手册页。



如果您无权访问库的源代码,则可以
使用字符串或 otool命令来搜索已编译的二进制文件行
工具。 字符串工具列出了库调用的方法,
和 otool -ov将列出Objective-C类结构及其
定义的方法。这些技术可以帮助您缩小问题代码
的位置。


我的应用仅使用 iAd ,没有其他广告框架。我试图找出问题所在,这是我发现的问题:


  1. 在构建设置中,我看到了AdSupport框架:

    由于在某个地方进行了一些教程,我可能将其包括在内。这是问题吗?如果删除AdSupport.framework,我的iAd仍然可以正常工作吗?


  2. 使用命令行,我将CD放入项目的根文件夹,然后





grep -r advertisingIdentifier。


我得到以下结果:


./ Pods / FBSDKCoreKit / FBSDKCoreKit / FBSDKCoreKit / Internal / AppEvents / FBSDKAppEventsUtility.m:
结果= [[经理managerIdentifierIdentifier ] UUIDString];


这是FBSDKAppEventUtility.m中的详细代码(FacebookSDK 4.1.0-我读了一些有关FacebookSDK问题的文章关于FBSDK 3.1中的广告标识符。我无法相信问题仍然存在于FBSDK 4.1.0中!):

  +(NSString *)advertiserID 
{
NSString * result = nil;

类ASIdentifierManagerClass = fbsdkdfl_ASIdentifierManagerClass();
if([[ASIdentifierManagerClass class]){
ASIdentifierManager * manager = [ASIdentifierManagerClass sharedManager];
结果= [[经理广告标识符] UUIDString];
}

返回结果;
}

我使用pod在我的应用程序中安装了Facebook SDK。请参阅,代码中包含与adsingIdentifier相关的内容。



我还在FBSDKAppEventUtility.m中看到:

  #import< ; AdSupport / AdSupport.h> 

以及FBSDKAppEventUtility.m中其他函数中ASIdentifierManagerClass的几种存在

是否还会导致我被拒绝?

解决方案

正如丹尼尔所说,您需要重新提交给Apple进行审查,是否有人拒绝过使用广告标识符?并提到在使用App Events或使用Facebook Audience Network SDK投放广告时,Facebook SDK需要AdSupport.framework。这不会自动保证批准。



Facebook iOS SDK文档具有问题排查指南,其中涵盖了SDK的哪些部分需要AdSupport.framework。



我也相信其中有一部分
的审查提交过程会询问您是否使用IDFA,是否正在使用App Events(包括[FBSDKAppEvents activateApp]),那么我认为您应该在提交中突出显示此内容。


My app has just been rejected with the following message:

PLA 3.3.12

We found 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.

My app uses only iAd, no other frameworks for advertising. I tried to locate the problem, and here is what I found:

  1. In the build setting, I saw the AdSupport framework: I might have included it due to following some tutorial somewhere. Is this the problem? Will my iAd still work correctly if I remove the AdSupport.framework?

  2. Using command line, I cd to the root folder of my project and

grep -r advertisingIdentifier .

I got the following result:

./Pods/FBSDKCoreKit/FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsUtility.m: result = [[manager advertisingIdentifier] UUIDString];

Here is the detailed code in FBSDKAppEventUtility.m (FacebookSDK 4.1.0 - I read some post about problem with FacebookSDK regarding advertising Identifier in FBSDK 3.1. I cannot believe that the problem still exist in FBSDK 4.1.0!):

+ (NSString *)advertiserID
{
  NSString *result = nil;

  Class ASIdentifierManagerClass = fbsdkdfl_ASIdentifierManagerClass();
  if ([ASIdentifierManagerClass class]) {
    ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager];
    result = [[manager advertisingIdentifier] UUIDString];
  }

  return result;
}

I used pod to install the Facebook SDK in my app, and as you can see, the code include something related to advertisingIdentifier.

I also see in FBSDKAppEventUtility.m:

#import <AdSupport/AdSupport.h>

and several existences of ASIdentifierManagerClass in other functions in FBSDKAppEventUtility.m

Will it also cause my to be rejected? Has anyone been rejected due to using advertising Identifier by using FBSDKCoreKit?

解决方案

As Daniel said you will need to resubmit to Apple for review and mention that the Facebook SDK requires AdSupport.framework when using App Events or when serving ads using the Facebook Audience Network SDK. This does not automatically guarantee approval.

The Facebook iOS SDK documentation has a Troubleshooting Guide which covers which parts of the SDK require AdSupport.framework.

I also believe that there is a section in the review submission process which asks you if you use IDFA, if you are using App Events (this include [FBSDKAppEvents activateApp]) then I believe you should highlight this in your submission.

这篇关于应用由于AdSupport.framework而被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆