应用已被AdSupport.framework

时间:2015-05-31 03:40:10

标签: facebook iad identifier advertising

我的应用刚被拒绝,并收到以下消息:

  

PLA 3.3.12

     

我们发现您的应用使用iOS广告标识符,但确实如此   不包含广告功能。这不符合条款   应用程序要求的iOS开发人员计划许可协议   商店评论指南。

     

具体来说,iOS开发者计划许可证的第3.3.12节   协议规定:

     

“您和您的应用程序(以及您拥有的任何第三方)   签约投放广告)可以使用广告标识符,   以及通过使用广告获得的任何信息   标识符,仅用于投放广告的目的。如果是用户   重置广告标识符,然后您同意不结合,   直接或间接关联,链接或以其他方式关联   先前的广告标识符和任何派生的信息   重置广告标识符。“

     

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

     

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

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

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

  •   
     

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

     

类:ASIdentifierManager选择器:advertisingIdentifier框架:   AdSupport.framework程式

     

如果您打算在将来的版本中加入广告,请   从您的应用中删除广告标识符,直到您拥有   包含广告功能。

     

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

     

如果您无权访问图书馆的来源,您可以   使用“strings”或“otool”命令行搜索已编译的二进制文件   工具。 “strings”工具列出了库调用的方法,   和“otool -ov”将列出Objective-C类结构及其结构   定义的方法。这些技巧可以帮助您缩小范围   有问题的代码驻留。

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

  1. 在构建设置中,我看到了AdSupport框架: enter image description here 我可能已经包含它了,因为在某处教程。这是问题吗?如果我删除AdSupport.framework,我的iAd是否仍能正常工作?

  2. 使用命令行,我cd到项目的根文件夹,

  3.   

    grep -r advertisingIdentifier。

    我得到了以下结果:

      

    ./荚/ FBSDKCoreKit / FBSDKCoreKit / FBSDKCoreKit /内部/ AppEvents / FBSDKAppEventsUtility.m:   result = [[manager advertisingIdentifier] UUIDString];

    以下是FBSDKAppEventUtility.m中的详细代码(FacebookSDK 4.1.0 - 我在FBSDK 3.1中阅读了一些关于FacebookSDK关于广告标识符问题的文章。我不相信FBSDK 4.1.0中仍然存在问题!):< / p>

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

    我使用pod在我的应用程序中安装Facebook SDK,正如您所看到的,代码中包含与advertisingIdentifier相关的内容。

    我也在FBSDKAppEventUtility.m中看到:

    #import <AdSupport/AdSupport.h>
    

    在FBSDKAppEventUtility.m的其他函数中存在几个ASIdentifierManagerClass

    这会导致我被拒绝吗?是否有人因使用FBSDKCoreKit使用广告标识符而遭到拒绝?

1 个答案:

答案 0 :(得分:2)

正如丹尼尔所说,您需要重新提交给Apple进行审核,并提及Facebook SDK在使用App Events或使用Facebook Audience Network SDK投放广告时需要AdSupport.framework。这并不能自动保证批准。

Facebook iOS SDK文档有Troubleshooting Guide,其中包含SDK的哪些部分需要AdSupport.framework。

我还认为审核提交过程中有一个部分会询问您是否使用IDFA,如果您使用的是App Events(包括[FBSDKAppEvents activateApp]),那么我相信您应该在提交中突出显示。 / p>