不正确的广告标识符[IDFA]用法

时间:2014-04-10 05:14:26

标签: ios itunesconnect

我将ios游戏提交到应用商店。

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

如何解决这个问题? 任何帮助都是适当的。

17 个答案:

答案 0 :(得分:43)

现在一切都已达到正常状态。只需上传您的二进制文件,并将IDFA广泛分为两类:

  1. 发布商:您使用第三方广告网络库来展示广告。选择IDFA中的第一个选项 - > "在应用程序内投放广告"。 自您展示广告以来,您就是发布商,但不会为自己的应用做广告。

  2. 广告客户:您使用第三方库来跟踪应用的转化情况,以及跟踪目标'在你的应用程序中您不能直接在自己的应用中展示广告。 选择第二个& IDFA中的第3个选项 - > "将此应用安装归因于先前投放的广告"。 和 "将此应用程序中采取的操作归属于先前投放的广告"。

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

答案 1 :(得分:33)

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

答案 2 :(得分:22)

您必须在“准备上传”页面上选中“是”: enter image description here 但是当您选中“否”时,您将无法在iTunes Connect上使用此新版本,并且无法重新进入“准备上传”页面或删除新版本。

目前,当发生此错误时,您的应用似乎永远锁定在旧版本上。 Apple必须解决这个问题!

答案 3 :(得分:14)

  1. 从参考中删除Google Analytics Library文件夹(Google Analytics使用[IDFA])
  2. 从参考
  3. 中删除AdSupport Framework
  4. 从参考
  5. 中删除iADSupport Framework
  6. 再次尝试上传
  7. 这对我现在很有用。

    顺便说一下,启用此选项does not help us

答案 4 :(得分:10)

根据这个article,它描述了一个发布者,他在收到同样的问题后分享了Apple告诉他们的内容。

Apple建议发布商检查代码,包括第三方库,以消除以下任何情况:

  

类:ASIdentifierManager

     

selector:advertisingIdentifier

     

框架:AdSupport.framework

我遇到了同样的问题,并搜索了上面的实例......我在Playhaven api中找到了一个方法,在我评论了那个部分后我没有再次收到错误。

Playhaven api的更新可能已经解决了这个问题,但我不确定......我只是选择了快速解决方案。'。

答案 5 :(得分:7)

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

答案 6 :(得分:6)

我在使用iTunes连接enter image description here验证应用时遇到此警告,我使用的是从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

中的另一个函数
+ (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框架。我已经通过这种方式解决了这个警告,并且我已成功上传了应用程序。

另请参阅此堆栈问题Link以避免拒绝,查找并删除不需要的框架。

答案 7 :(得分:6)

iTunesConnect网站更改了处理此警告时的工作流程。您需要使用此警告上传您的应用程序(至少使用XCode 5.1.1)。

在iTunesConnect中,您现在可以在从XCode上传后选择您的版本。选择构建,然后单击“提交审阅”后,您将获得先前在准备上载时设置的提示(特别是“广告标识符”)。

答案 8 :(得分:5)

如果您在iTC上传页面中为IDFA选择“是”,请务必在Safari偏好设置中关闭AdBlocker ,否则您将收到错误“您必须选择应用的方式使用IDFA“,当您单击”继续“时,但不能选择该用法。

如果您的广告拦截器已关闭且一切正常,则HTML页面将展开以显示底部选择的选项。

答案 9 :(得分:2)

我有同样的问题。

我们的应用只需使用googleAnalytics / googleMaps库和TestFlight库。 我坚持使用itunes上的新版本连接IDFA上的NO标志。

我们无法移除此库,因为该应用程序将无法正常编译。

解决方案是什么?只需创建一个具有相同的包ID和版本ID的空应用程序,上传到itunes connect然后停止发布?真的?

谢谢:)

答案 10 :(得分:1)

如果问题仅与谷歌分析SDK相关,您可以升级它:新版本从AdSupport Framework中删除依赖项,从而从IDFA中删除依赖项。

答案 11 :(得分:1)

作为@iDurocher所说的完整详细答案:
1.确保在上传二进制文件后至少有一个活动的预发布版本(选择预发行版,然后确保有一个可点击的版本,请注意处理时间可能需要半小时)。 2.返回“版本”屏幕并选择Build以添加上载的版本 3.现在按提交进行审核,然后会询问您有关IDFA的信息。

答案 12 :(得分:0)

Facebook iOS SDK也使用IDFA。据我了解,根据iTunes Connect中的信息,人们应该仅将IDFA用于广告目的。我把它删除了,现在好了。

答案 13 :(得分:0)

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

答案 14 :(得分:0)

在使用Xcode验证应用时,我遇到了与Admob(GoogleMobileAds)SDK相同的问题。

我的解决方案是:

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

  2. 在iTunes Connect页面中关闭Safari中的Adblock

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

  4. 我已经准备好了#34;准备上传"再次页面

  5. 我在此页面启用了广告标识符用法,等等

答案 15 :(得分:0)

- 拒绝二进制文件。

- 再次上传二进制文件。

- 检查选项“此应用是否使用广告标识符(IDFA)”

你已经完成了。

答案 16 :(得分:0)

您需要修改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"];
//    }