【问题标题】:Improper advertising identifier [IDFA] usage (Limit Ad Tracking)广告标识符 [IDFA] 使用不当(限制广告跟踪)
【发布时间】:2023-03-03 20:15:02
【问题描述】:

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

xcode 显示以下错误: “广告标识符 [IDFA] 使用不当。您的应用包含广告标识符 [IDFA] API,但您的应用不遵守 iOS 中的限制广告跟踪设置。”

我没有更改任何有关我的广告设置的内容,我的应用的最新版本也没有任何问题。

在过去的 20 小时里,我一直在尝试寻找解决方法,但我开始发疯了。 我必须改变什么以及如何改变?请帮帮我!

【问题讨论】:

    标签: ios xcode limit ads


    【解决方案1】:

    我遇到了同样的问题,并且能够通过删除 AdMob 广告并仅保留 iAd 来解决它。 我知道这不是一个完美的解决方案,但之后您至少应该能够上传您的应用。

    【讨论】:

    • 我从我的应用程序中删除了所有广告,将其上传到 App Store,拒绝二进制文件,重新包含广告并再次提交。这次成功了!我学到了什么:只有在我真正要上传我的二进制文件时才点击“准备上传二进制文件”。
    【解决方案2】:

    您可以尝试更新最新版本的 Admob,或在调用 Admob 之前检查 [ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled,因为 Apple 现在要求应用需要在用户设备中检查此设置。

    【讨论】:

      【解决方案3】:

      我在更新应用时遇到了类似的错误。我没有使用任何广告,但确实有 Facebook 集成(需要 AdSupport 框架)。我相信,在搜索网络后,Facebook 将广告 ID 用于自己的分析目的,因此,即使我的应用程序中没有包含广告,通过 xCode 的验证和上传过程也失败,并出现错误“您的应用程序包含广告标识符 [IDFA] API..."

      我搜索发现需要下载 Facebook SDK 源代码,更新 FBUtility.m 以删除对 adsID 的引用,但实际上我只需要:

      1) 下载最新 SDK 的源代码,我从这里下载:https://github.com/facebook/facebook-ios-sdk(我将 zip 文件从 github 下载到我的文档文件夹)

      2) 构建框架 - 打开终端。在命令提示符下使用 cd 文档,然后使用以下命令:sudo scripts/build_framework.sh,它将运行下载的 Facebook SDK 文件夹内的 scripts 子文件夹中的 build_framework.sh 脚本

      3) 从您的 Xcode 项目中删除旧的 FacebookSDK.framework 并添加新的(在我的例子中,我导航到文档/facebook-ios-sdk/build 并选择 FacebookSDK.framework 文件夹

      4) 存档项目,它应该(在我的情况下)很好上传

      希望能在此过程中对某人有所帮助 - 我已经在这里工作了好几天了!!

      【讨论】:

      • 还需要添加广告支持吗?架构 i386 的未定义符号:“_OBJC_CLASS_$_ASIdentifierManager”,引用自:FacebookSDK(FBUtility.o) 中的 objc-class-ref:未找到符号架构 i386 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
      • 我也遵循了这些步骤,但我对 iTunes Connect 中的问题有疑问。此应用程序是否使用广告标识符?你做了哪些选择?
      • 我对那个问题的回答是“不”
      【解决方案4】:

      我遇到了同样的问题。 TapJoy 是我的罪魁祸首。我删除了他们的 SDK,并且提交的应用没有问题。

      【讨论】:

        【解决方案5】:

        Apple 最近更改了他们的 IDFA 扫描程序。点击“准备上传”后,您不仅需要选中相应的复选框,而且您的代码(或您拥有的任何其他第三方库都必须通过直接使用该类来使用 IDFA。

        有人建议这样做:

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

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

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

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

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

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

        【讨论】:

        • 识别哪个类/框架导致此问题的更聪明的方法是设置符号断点-[ASIdentifierManager AdvertisingIdentifier] + 在设置>隐私>设备上的广告中打开限制广告跟踪-> @ 987654321@
        【解决方案6】:

        现在一切都已恢复正常。只需上传您的二进制文件,然后将 IDFA 大致分为两类:

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

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

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

        【讨论】:

          猜你喜欢
          • 2014-05-23
          • 2015-10-05
          • 1970-01-01
          • 2014-06-12
          • 1970-01-01
          • 2015-12-12
          • 2014-04-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多