Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在xCode 5中验证我的应用程序时,获取错误广告标识符[IDFA]使用不当_Ios_Objective C_Xcode - Fatal编程技术网

Ios 在xCode 5中验证我的应用程序时,获取错误广告标识符[IDFA]使用不当

Ios 在xCode 5中验证我的应用程序时,获取错误广告标识符[IDFA]使用不当,ios,objective-c,xcode,Ios,Objective C,Xcode,验证我的应用程序时,我收到一个错误消息 “广告标识符使用不当。你的应用程序包含广告标识符[IDFA]API,但你没有遵守iOS中的限制广告跟踪设置。” 我在准备上传页面上选择了“是”作为广告标识。我正在我的应用程序(COCOS2D-X项目)中使用revmob广告和flurry分析。如何解决这个问题,我已经尝试了很多,但没有成功。我在appdelegate中使用了以下代码,但运气不佳 - (NSString *)identifierForAdvertising { if([[ASIdenti

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

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

我在准备上传页面上选择了“是”作为广告标识。我正在我的应用程序(COCOS2D-X项目)中使用revmob广告和flurry分析。如何解决这个问题,我已经尝试了很多,但没有成功。我在appdelegate中使用了以下代码,但运气不佳

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

       return [IDFA UUIDString];
   }

    return nil;
}  

大约在4月26日,苹果改变了他们的IDFA扫描程序。单击“准备上载”后,您不仅必须选中相应的复选框,而且您的代码(或您拥有的任何其他第三方库)必须通过直接使用该类来使用IDFA

有人建议这样做:

“您可以通过使用NSClassFromString(@“ASIdentifierManager”)替换对ASIdentifierManager的直接引用来实现此目的”

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

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

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

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


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

看起来苹果现在已经恢复了更改。所有应用程序都恢复了正常运行:)

这个IDFA问题今天仍在我身上发生。我追踪到了GoogleAnalytics pod,所以我只是通过在pod文件中指定
pod'GoogleAnalytics iOS SDK',“~>3.0.7”
,将pod更新到最新版本,从而为我解决了这个问题。该版本以前未指定,但使用的是3.0.3。

请确保更新到最新的revmob和flurry。此外,我可以通过删除对AdSupport.framework的引用使我的应用程序通过新的验证过程(并在构建设置/构建阶段/链接库二进制文件中将状态设置为“可选”),您可以通过将对ASIdentifierManager的直接引用替换为NSClassFromString(@“ASIdentifierManager”)来实现这一点不过这只是一个解决办法:(Stephane感谢您提供的信息,我已经使用了更新的sdk并执行AdSupport.framework状态可选,但它不起作用,问题保持不变。您是否仍有粘贴在应用程序委派中的代码?您不应该需要它。是的,我正在应用程序委派中使用上述代码。如果我没有在应用程序委派中使用此代码“不正确的广告标识”问题仍然存在。最近苹果在iTunes中更改了“广告标识”。我在互联网上读到了这篇文章,并根据以下链接进行了实施。链接:-[1][2]可能与Wow重复,因此苹果的验证过程比我想象的还要糟糕:)(我是建议NSClassFromString解决方案的人)。感谢您的反馈!他们似乎已经取消了扫描,现在只需要在IDFA使用方面保持透明。因此,即使在提交二进制文件时可能会选中所有必需的复选框,但如果该类未用作直接引用,他们会拒绝该二进制文件,假定IDFA在tho设置的边界之外使用当提交二进制文件时,有三个复选框选项。你的评论很有用,我对我的应用程序进行了快速扫描,自定义了库,以确认在iOS 7中设置限制广告跟踪时是否调用了API。我使用了这段基本代码,但苹果仍在发送拒绝邮件->NSString*advertiserId=@”;如果([[ASIdentifierManager sharedManager]IsAdvertisingTrackinEnabled]){ASIdentifierManager*advIdManager=[ASIdentifierManager sharedManager];广告客户ID=[[advIdManager advertisingIdentifier]UUIDString];}我还没有得到IDFA的解决方案,现在当我要将我的应用程序上载到iTunes时,iTunes将应用程序状态显示为“无效二进制”。我认为这是由于广告标识符不正确。有人可以建议我如何修复此问题,以便我可以毫无问题地上载应用程序。您使用的是哪个广告网络SDK?您需要选择“当您的应用程序准备好进行二进制上传时,IDFA的“显示广告”选项。谢谢,我遇到了相同的问题。GoogleAnalytics 3.0.3导致了此警告。我更新到3.0.7,警告消失。