当我在xCode 5中验证我的应用时,获取错误不正确的广告标识符[IDFA]用法

Ash*_*hok 7 xcode objective-c ios

在验证我的应用程序时,我收到错误消息

"广告标识符使用不当.您的应用包含广告标识符[IDFA] API,但您尚未遵守iOS中的限制广告跟踪设置."

我在广告标识符的准备上传页面上检查了"是".我在我的应用程序中使用revmob广告和flurry分析(COCOS2D-X项目).如何解决这个问题,我已经尝试了很多但没有成功.我使用下面的代码进入appdelegate但没有运气.

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

       return [IDFA UUIDString];
   }

    return nil;
}  
Run Code Online (Sandbox Code Playgroud)

屏幕截图

Lia*_*iam 8

这个IDFA问题今天仍在我身上发生.我将其跟踪到GoogleAnalytics pod,因此我只是通过pod 'GoogleAnalytics-iOS-SDK', '~> 3.0.7'在podfile中指定为我修复了问题来将pod更新为latist版本.该版本以前未指定,但使用的是3.0.3.


小智 3

4 月 26 日左右,Apple 更改了 IDFA 扫描程序。单击“准备上传”后,您不仅必须选中相应的复选框,而且您的代码(或您拥有的任何其他第三方库必须直接使用该类来使用 IDFA)。

有人建议这样做:

“您可以通过用 NSClassFromString(@"ASIdentifierManager") 替换对 ASIdentifierManager 的直接引用来做到这一点”

不要使用这种方法加载此类!新的扫描程序将专门针对此情况进行查找,如果找到而不是直接引用 - 苹果似乎认为跟踪标识符有一些奇怪的用法。我不能说我不同意这个决定。

确切地找到哪个库出了问题可能并不容易。例如,最新的 AdMob SDK 直接使用该类,并不是问题的根源。

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

这听起来有点违反直觉,但直接引用不是问题,该类的动态(弱)加载才是问题。

希望这对某人有帮助 - 我们一直在努力,直到找到问题的根源。