不正确的广告标识符的使用

我正在向app store提交ios游戏。

Xcode给我错误广告标识符[IDFA]使用不当。 您的应用程序包含广告标识符[IDFA] API,但您尚未在iTunes Connect中的“准备上传”页面上指明其用法。

如何解决这个问题? 任何帮助appritiated。

您可以使用相同的bundleID上传任何应用程序。 上传完成后,您可以拒绝二进制文件,下次将状态更改为“准备上传”时,请勿忘记检查[IDFA]。

现在一切都已经到了平常的状态。 简单地上传你的二进制文件,就像你一直在做的那样,并且将IDFA大致分为两类:

  1. 发布商:您使用第三方广告networking库来展示广告。 selectIDFA中的第一个选项 – >“在应用程序内投放广告”。 自从您展示广告之后,您就是发布商,但不要为自己的应用执行广告。

  2. 广告客户:您可以使用第三方库来跟踪您应用的转化次数,并跟踪应用中的“目标”。 您直接不会在您的应用中展示广告。 selectIDFA中的第二个和第三个选项 – >“将此应用安装到以前投放的广告”。 以及“将此应用中采取的操作归因于之前投放的广告”。

  3. 混合:您可以跟踪应用的转化次数,并在应用中展示广告。 select所有三个选项。

您必须在“准备上传”页面上选中“是” 在这里输入图像说明 但是,当您选中“否”时,您将停留在iTunes Connect上的这个新版本,无法重新进入“准备上传”页面或删除新版本。

目前看起来像这个错误发生时,你的应用程序永远locking在旧版本上。 苹果必须解决这个问题!

  1. 从您的参考中删除Google Analytics(分析)库文件夹(Google Analytics(分析)使用[IDFA])
  2. 从您的参考中删除AdSupport框架
  3. 从您的参考中删除iADSupport框架
  4. 尝试再次上传

这对我来说现在工作。

顺便说一句,启用这个选项并不能帮助我们

根据这篇文章 ,哪一个出版商分享了苹果告诉他们在收到同样的问题后告诉他们。

苹果build议发行商检查代码,包括第三方库,以消除以下任何事件:

类:ASIdentifierManager

select器:advertisingIdentifier

框架:AdSupport.framework

我有同样的问题,并寻找上述实例…我find了一个方法与他们在Playhaven api,后我评论,部分我没有再次得到错误。

Playhaven api的更新也可能解决了这个问题,但我不确定…我只是select了“快速修复”。

您只需要上传具有相同捆绑ID并且没有广告支持的任何应用,然后拒绝二进制文件并检查新的广告选项是。 然后,您可以提交您的应用程序没有问题。

在使用iTunes连接validation应用程序时,我也遇到了这个警告 在这里输入图像说明 我正在使用从Ref Link下载的FacebookSDK.framework。 在FBUtility.m中,我评论了下面的代码并删除了Adsupport.Frmaework

+ (NSString *)advertiserID { NSString *advertiserID = nil; Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"]; if ([ASIdentifierManagerClass class]) { ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager]; advertiserID = [[manager advertisingIdentifier] UUIDString]; } return advertiserID; 

} 至

 + (NSString *)advertiserID { return @""; 

}

并改变了同类FBUtility.m中的另一个function

 + (FBAdvertisingTrackingStatus)advertisingTrackingStatus { if ([FBSettings restrictedTreatment] == FBRestrictedTreatmentYES) { return AdvertisingTrackingDisallowed; } FBAdvertisingTrackingStatus status = AdvertisingTrackingUnspecified; Class ASIdentifierManagerClass = [FBDynamicFrameworkLoader loadClass:@"ASIdentifierManager" withFramework:@"AdSupport"]; if ([ASIdentifierManagerClass class]) { ASIdentifierManager *manager = [ASIdentifierManagerClass sharedManager]; if (manager) { status = [manager isAdvertisingTrackingEnabled] ? AdvertisingTrackingAllowed : AdvertisingTrackingDisallowed; } } return status; 

}

 + (FBAdvertisingTrackingStatus)advertisingTrackingStatus { FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified; return status; 

}

我已经删除了FacebookSDK.framework并从Ref Link下载了Facebook框架。 我已经通过这种方式解决了这个警告,我已经成功地上传了应用程序。

也看到这个堆栈问题链接,以避免拒绝,find并删除不需要的框架。

当您处理此警告时,iTunesConnect网站更改了工作stream程。 您将需要使用此警告上传您的应用程序(至less在XCode 5.1.1中)。

在iTunesConnect中,您现在从XCode上传后select您的版本。 select构build之后,点击“提交以供查看”,您将获得您在准备上传时提前设置的提示(具体为“广告标识符”)。

如果您在iTC上传页面中为IDFAselect了“是”,请务必在Safari偏好设置中closures您的AdBlocker ,否则当您点击“继续”时,您将收到错误“您必须select您的应用程序如何使用IDFA” “,但是不允许你select这个用法。

如果您的adblocker已closures,并且所有内容都按原样运行,则HTML页面将展开,以显示底部的要select的选项。

我也有同样的问题。

我们的应用程序只使用googleAnalytics / googleMaps库和TestFlight库。 我坚持一个新版本的iTunes连接IDFA NO标志。

我们不能删除这个库,因为应用程序将不能正确编译。

有什么解决scheme? 只需创build一个空的应用程序与相同的捆绑ID和版本ID,上传到iTunes连接,然后停止发布? 真?

谢谢 :)

如果问题仅与iOS的Google Analytics(分析)SDK相关,则可以对其进行升级:新版本从AdSupport Framework中删除依赖项,因此也从IDFA中删除依赖项。

作为@iDurocher所说的完整的详细答案:
1.确保在上传二进制文件之后至less有一个主动的预发布版本(select预发行版本,然后确保有一个可点击的版本,请注意,处理大概需要半个小时)。
2.返回“版本”屏幕并select 建立 添加上传的版本。
3.现在按“提交”进行审查,然后询问有关IDFA的信息。

Facebook iOS SDK也使用IDFA。 据我所知,根据iTunes Connect中的信息,只能将IDFA用于广告目的。 我把它删除了,现在没关系。

我有同样的问题,我解决了上传应用程序,尽pipeIDFA警告。 然后,IPA被拒绝,您可以重新启动,并启用“准备上传”页面。 请务必在“准备上传”页面的“广告标识符”部分中选中“是”。

在使用Xcodevalidation应用程序时,我遇到了与Admob(GoogleMobileAds)SDK相同的问题。

我的解决scheme是:

  1. 使用Xcode将应用程序分发到iTunes Connect

  2. 在Safari中closuresiTunes Connect页面的Adblock

  3. 由于iTunes Connect中的IDFA使用不当,该应用程序被宣布无效

  4. 我已经有了“准备上传”页面了

  5. 我在这个页面上启用了广告标识符的使用,等等

– 拒绝二进制。

再次上传二进制文件。

– 选中“此应用是否使用广告标识符(IDFA)”

你完成了。

您需要修改MixPanel.m上的代码如果您正在使用它。

  - (NSString *)defaultDistinctId { NSString *distinctId = nil; if (NSClassFromString(@"ASIdentifierManager")) { distinctId = [[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString]; } if (!distinctId) { NSLog(@"%@ error getting ifa: falling back to uuid", self); distinctId = [[NSUUID UUID] UUIDString]; } if (!distinctId) { NSLog(@"%@ error getting uuid: no default distinct id could be generated", self); } return distinctId; } 

 - (NSString *)defaultDistinctId { return @""; } 

并在collectAutomaticProperties,collectAutomaticProperties函数的下面注释行

 // if (NSClassFromString(@"ASIdentifierManager")) { // [p setValue:[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString] forKey:@"$ios_ifa"]; // }