当我在xCode 5中validation我的应用程序时,获取错误的不当广告标识符使用情况

当validation我的应用程序,我得到一个错误说

“广告标识符使用不当,您的应用程序包含广告标识符[IDFA] API,但您没有遵守iOS中的限制广告跟踪设置。

我在广告标识的准备上传页面select“是”。我在我的应用(COCOS2D-X项目)中使用revmob广告和乱七八糟的分析。如何解决这个问题,我尝试了很多,但没有成功。有下面的代码使用appdelegate,但没有运气。

- (NSString *)identifierForAdvertising { if([[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]) { NSUUID *IDFA = [[ASIdentifierManager sharedManager] advertisingIdentifier]; return [IDFA UUIDString]; } return nil; } 

屏幕截图

这个IDFA问题今天仍然在发生。 我把它跟踪到GoogleAnalytics窗格 ,所以我只是通过在podfile中指定pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.7'来更新pod到latist版本,这为我解决了问题 。 该版本以前未指定,但使用3.0.3。

4月26日左右,苹果改变了他们的IDFA扫描程序。 在点击“准备上传”之后,您不仅需要检查相应的checkbox,而且您的代码(或者您拥有的任何其他第三方库必须直接使用该类来使用IDFA。

有人build议这样做:

“你可以通过用NSClassFromString(@”ASIdentifierManager“)replaceASIdentifierManager的直接引用来实现。

不要使用这种方法加载这个类! 新的扫描程序将专门针对这个,如果它被发现,而不是直接引用 – 苹果似乎认为有一些奇怪的使用跟踪标识符。 我不能说我不同意这个决定。

可能不容易find哪个库存在错误。 例如,最新的AdMob SDK直接使用该类,并不是问题的根源。

一种方法可以找出哪个库是问题的根源,是从您的项目中删除AdSupport.Framework,看看哪些库无法链接。 那些库不是问题。 看看你是否有其他的广告库,不需要包括AdSupport.Framework – 这些最有可能的罪魁祸首。

这听起来有点直观,但直接引用不是问题,该类的dynamic(弱)加载是。

希望这可以帮助别人 – 我们把头发拉出来,直到find问题的根源。

看起来苹果已经恢复了现在的变化。 所有的应用程序都像往常一样再次:)