我的应用程序因使用广告支持框架而被拒绝.哪个图书馆负责?

use*_*801 81 appstore-approval flurry ios testflight parse-platform

这只是一个更新,并没有改变任何与拒绝原因有关的事情.以下是决议中心的回复:

原因计划许可协议PLA 3.3.12

我们发现您的应用使用了iOS广告标识符,但未包含广告功能.这不符合App Store审查指南要求的iOS开发人员计划许可协议的条款.

具体而言,iOS开发人员计划许可协议的第3.3.12节规定:

"您和您的应用程序(以及您与之签约投放广告的任何第三方)可以使用广告标识符,以及通过使用广告标识符获得的任何信息,仅用于提供广告.如果用户重置广告标识符,您同意不会将之前的广告标识符和任何衍生信息与重置的广告标识符直接或间接地结合,关联,链接或以其他方式关联.

请检查您的代码 - 包括任何第三方库 - 以删除以下任何实例:

class:ASIdentifierManager
选择器:advertisingIdentifier
框架:AdSupport.framework

如果您计划在将来的版本中加入广告,请从您的应用中删除广告标识符,直到您添加了广告功能.

要帮助找到广告标识符,请使用"nm"工具.有关"nm"工具的信息,请打开终端窗口并输入"man nm".

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

我正在使用的第三方库是最新版本的parse.com sdk, latest version of flurry analytics, and version 2.2 of test flight.有谁知道哪个库是问题?谢谢

Ada*_*dam 112

在终端:

  1. 转到项目的根文件夹
  2. 类型:( grep -r advertisingIdentifier . 最后的点是关键)

这将以递归方式检查每个文件,并为您提供有问题的库的名称.

(在我的情况下,它是Flurry)

  • 我们该怎么办呢?我们不能完全删除我们的分析...... (2认同)
  • 使用上述命令时可以确认Flurry 4.3.2与advertisingIdentifier不匹配. (2认同)

Gla*_*ves 17

更新

Google发布了Google Analytics Services iOS SDK v3.03c,默认情况下会删除AdSupport.framework依赖项.

发行版3.03c的完整更新日志条目(2014年2月19日):https://developers.google.com/analytics/devguides/collection/ios/changelog

老奥温

我的问题出在Google Analytics和TestFlight上.

对于TestFlight,我只需将库更新到2.2.1版(https://www.testflightapp.com/sdk/ios/release_notes/2.2.1/).

但是要更新Google Analytics,我必须删除-ObjC标志.但是当我使用Cocoapods管理一些第三个库时,我不能只删除它.所以我做了以下事情:

1 - 开始将libGoogleAnalytics.a更新为3.03a版(2014年2月5日)

2 - 然后删除了AdSupport.framework

3 - 在"目标 - >构建设置 - >其他链接器标志"下添加了"-force_load"$ {PROJECT_DIR} /Source/Library/GoogleAnalyticsServicesiOS_3.03a""(请注意,在我的项目中,GoogleAnalytics位于/ Source /库/文件夹,你必须自己配置)

但是当我没有删除-ObjC标志时,我搜索了如何在Cocoapods中使用-force_load标志,然后我发现了两个有用的链接:

1 - https://github.com/CocoaPods/CocoaPods/issues/712

2 - http://www.deanmao.com/2012/12/31/linker-error-using-cocoapods/

总结一下,我在"目标 - >构建设置 - >其他链接器标志"下更改了"-force_load $(TARGET_BUILD_DIR)/libPods.a"的-ObjC标志

但同样,当我试图发布我的应用程序时,我得到一个错误,告诉我编译器没有找到libPods.a,所以我去了"目标 - >构建设置 - >其他链接器标志 - >发布"和将此字符串$(TARGET_BUILD_DIR)更改为$ {BUILT_PRODUCTS_DIR}.

所以我的Other Linker Flags变得如下图所示. 其他链接器标志

希望能帮助别人.

对不起我的英语不好.=]


Fra*_*dow 13

对我来说,Flurry Analytics和TestFlight都是问题所在.

对于TestFlight,它就像更新它一样简单.2.2.1版本不会导致任何问题(我使用字符串检查,如Apple建议)

对于Flurry,目前除了删除Flurry之外没有任何修复,与Lou Weed的建议相反,即使AdSupport.framework没有链接,您的应用也会被拒绝.

这是Flurry的支持答案:

"感谢您与Flurry联系.我们最近了解到Apple拒绝了其认为使用广告标识符(IDFA)的一些应用,但未包含广告功能.请注意,除非应用包含AdSupport,否则Flurry不会收集IDFA .广告功能的框架.我们正在寻求与Apple的澄清,我们将在未来几天了解更多信息,以便更新我们受影响的客户."

Flurry刚刚发布了他们SDK的4.3.2版本,专门解决了这个问题.