原因计划许可协议PLA 3.3.12
我们发现您的应用使用了iOS广告标识符,但未包含广告功能。这不符合App Store审查指南要求的iOS开发人员计划许可协议的条款。
具体而言,iOS开发人员计划许可协议的第3.3.12节规定:
“您和您的应用程序(以及与您签订合同以进行广告宣传的任何第三方)可以使用广告标识符以及通过使用广告标识符获得的任何信息,仅用于提供广告服务。用户重置广告标识符,然后您同意不会直接或间接地将先前的广告标识符和任何派生信息与重置的广告标识符相关联,关联,链接或以其他方式关联。“
请检查您的代码 - 包括任何第三方库 - 以删除以下任何实例:
类:ASIdentifierManager
选择器:advertisingIdentifier
框架:AdSupport.framework如果您计划在未来版本中加入广告,请从您的应用中删除广告标识符,直到您添加了广告功能。
要帮助找到广告标识符,请使用“nm”工具。有关“nm”工具的信息,请打开终端窗口并输入“man nm。”
如果您无权访问库源,则可以使用“strings”或“otool”命令行工具搜索已编译的二进制文件。 “strings”工具列出了库调用的方法,“otool -ov”将列出Objective-C类结构及其定义的方法。这些技术可以帮助您缩小有问题的代码所在的位置。
我通过以下命令检查了谁使用IDFA:
grep -r advertisingIdentifier .
我知道Facebook SDK(3.1.1版本)使用它。
我该如何解决这个问题?
答案 0 :(得分:4)
我的解决方案是facebook 3.20 SDK确实没问题,但我不得不删除它们包含在FacebookSDK.framework中的FBAudience框架。
删除FBAudience框架后,运行
otool -L myAppName.app/myAppName
我不再看到捆绑在我的构建中的AdSupport库,在终端中打印如下:
/System/Library/Frameworks/AdSupport.framework/AdSupport
答案 1 :(得分:1)
如果您没有找到从Facebook SDK中删除IDFA使用方法的方法,那么另一种解决方案就是说您使用IDFA将安装归因于以前投放的广告(实际上是公平的)在Facebook SDK中启用很简单。)
如果我没记错的话,在iTunesConnect中创建新版本时,您可以使用此选项。
答案 2 :(得分:1)
Facebook在最新版本中已经解决了这个问题。将您的Facebook sdk更新到最新版本,这将解决您的问题。