ios 广告标识符 [IDFA] 使用不当

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22979151/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 23:56:05  来源:igfitidea点击:

improper advertising identifier [IDFA] usage

iosapp-store-connect

提问by sssss

I'm submitting ios game to app store.

我正在向应用商店提交 ios 游戏。

xcode gives me error Improper advertising identifier [IDFA] usage. Your app contains the Advertising Identifier [IDFA] API but you have not indicated its usage on the Prepare for Upload page in iTunes Connect.

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

How to fix this? Any help appritiated.

如何解决这个问题?任何帮助都被认可。

采纳答案by Nhong Sua

You can upload any application with the same bundleID. When you've done uploading, you can reject binary and next time you change status to Ready to Upload, don't forget check [IDFA].

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

回答by rishabh

Everything has come to its usual state now. Simply upload your binary as you've been doing this while, and broadly classify IDFA in two categories:

现在一切都恢复了往常的状态。只需上传您的二进制文件,并将 IDFA 大致分为两类:

  1. publisher: You use third-party ad-networks library to display ad. Choose the 1st option in IDFA -> "Serve advertisements within the app". You're a publisher since you show ads, but do not perform advertising for your own app.

  2. Advertiser: You use third-party libraries to track conversions for your app, as well as track 'goals' in your app. You directly do not show ads in your app. Choose the 2nd & 3rd option in IDFA -> "Attribute this app installation to a previously served ad". AND "Attribute an action taken within this app to a previously served advertisement".

  3. Mixed: You track conversions for your app, as well as display ads in your app. Choose all three options.

  1. 发布者:您使用第三方广告网络库来展示广告。选择 IDFA 中的第一个选项 ->“在应用内投放广告”。您是发布商,因为您展示广告,但不为您自己的应用投放广告。

  2. 广告商:您使用第三方库来跟踪应用的转化情况,以及跟踪应用中的“目标”。您不会直接在您的应用中展示广告。选择 IDFA 中的第二个和第三个选项 ->“将此应用安装归因于以前投放的广告”。并且“将在此应用程序中执行的操作归因于先前提供的广告”。

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

回答by Marko

You have to check "Yes" on the Prepare for Upload page: enter image description hereBut when you checked "No", you are stuck with this new version on iTunes Connect and cannot reenter the Prepare for Upload page or delete your new version.

您必须在准备上传页面上勾选“是”: 在此处输入图片说明但是当您勾选“否”时,您会在 iTunes Connect 上使用这个新版本,并且无法重新进入准备上传页面或删除您的新版本。

At the moment it seems like your app is locked forever on the old version when this error occurs. Apple has to fix this!

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

回答by DeveloB?r

  1. Remove Google Analytics Library folder from your reference (google analytics uses [IDFA])
  2. Remove AdSupport Framework from your reference
  3. Remove iADSupport Framework from your reference
  4. try upload again
  1. 从您的参考中删除 Google Analytics Library 文件夹(Google Analytics 使用 [IDFA])
  2. 从您的参考中删除 AdSupport 框架
  3. 从您的参考中删除 iADSupport Framework
  4. 再次尝试上传

This worked for me right now.

这现在对我有用。

by the way, enabling this option does not help us

顺便说一句,启用此选项对我们没有帮助

回答by user3518300

According to this article, which profiled a publisher who shared what Apple told them after receiving the same issue.

根据这篇文章,该文章介绍了一位出版商在收到相同问题后分享了 Apple 告诉他们的内容。

Apple advised the publisher to check code, including third-party libraries, to remove any incidences of the following:

Apple 建议出版商检查代码,包括第三方库,以消除以下任何事件:

class: ASIdentifierManager

selector: advertisingIdentifier

framework: AdSupport.framework

类:ASIdentifierManager

选择器:advertisingIdentifier

框架:AdSupport.framework

I had the same problem, and searched for the above instances... i found a method with them in the Playhaven api, and after i commented that section out i didn't get the error again.

我遇到了同样的问题,并搜索了上述实例...我在 Playhaven api 中找到了一种方法,在我注释掉该部分后,我没有再次收到错误消息。

An update of the Playhaven api may have fixed this as well, but i'm not sure... i just opted for the 'quick fix.'.

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

回答by ASHISHT

I was also facing this warning while validating app with iTunes connectenter image description hereand I was using FacebookSDK.framework which was downloaded from Ref Link. In FBUtility.mI have commented below code and removed Adsupport.Frmaework

我在使用 iTunes Connect 验证应用程序时也遇到了这个警告在此处输入图片说明,我使用的是从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;

} to

} 到

+ (NSString *)advertiserID {

return @"";

}

}

and changed another function in same class FBUtility.m

并更改了同一类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;

}

}

to

+ (FBAdvertisingTrackingStatus)advertisingTrackingStatus {

FBAdvertisingTrackingStatus status =AdvertisingTrackingUnspecified;
return status;

}

}

I have removed that FacebookSDK.framework and downloaded Facebook framework from Ref Link . I have resolve this warning by using this way and I have uploaded app successfully.

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

And also see this stack question Linkto avoid rejection, find and remove unwanted framework.

并且还看到这个堆栈问题链接以避免拒绝,查找和删除不需要的框架。

回答by XIII

You just need to upload any app with the same bundle id and no ad support then reject the binary and check the new ad options yes. Then you can submit your app without a problem.

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

回答by iDurocher

The iTunesConnect site changed the workflow for when you handle this warning. You will need to upload your app with this warning (at least with XCode 5.1.1).

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

In iTunesConnect, you now select your build after uploading from XCode. After selecting the build, then clicking "Submit for Review", you will get the prompts you previously set when preparing for upload (specifically - "Advertising Identifier").

在 iTunesConnect 中,您现在可以在从 XCode 上传后选择您的构建。选择build后,然后点击“Submit for Review”,会得到之前准备上传时设置的提示(特别是——“Advertising Identifier”)。

回答by RickJansen

If you select "Yes" for the IDFA in the iTC upload page, be sure to have your AdBlocker switched offin Safari preferences, else you will get the error "You must select how your App uses the IDFA", when you click "Continue", but giving you no option to select that usage.

如果您在 iTC 上传页面中为 IDFA 选择“是”,请确保在 Safari 首选项中关闭您的 AdBlocker,否则当您单击“继续”时,您将收到错误“您必须选择您的应用程序使用 IDFA 的方式” ",但您无法选择该用法。

If your adblocker is switched off and everything works as it should, the HTML page rolls out to show options to select, at the bottom.

如果您的广告拦截器已关闭并且一切正常,则 HTML 页面会在底部推出以显示可供选择的选项。

回答by Matte

i have the same problem.

我也有同样的问题。

Our app just use googleAnalytics/googleMaps libraries and TestFlight library. I'm stuck with a new version on itunes connect with NO flag on IDFA.

我们的应用程序只使用 googleAnalytics/googleMaps 库和 TestFlight 库。我被困在 iTunes 上的新版本中,但 IDFA 上没有标志。

We cant remove this libraries because the app will not compile anymore right.

我们无法删除此库,因为该应用程序将不再正确编译。

What's the solution? Just create an empty app with the same bundle id and version id, upload to itunes connect and then stop the publishing? Really?

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

Thanks :)

谢谢 :)