【问题标题】:improper advertising identifier [IDFA] usage, but it doesn't不当的广告标识符 [IDFA] 使用,但它没有
【发布时间】:2014-06-12 02:51:57
【问题描述】:

在将应用程序文件上传到 itunesconnect 时,XCode 显示:不正确的广告标识符 [IDFA] 使用...等。 但是我没有在我的项目中使用这个功能。我试图找到任何

[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]

打电话。此外,我只是在修复我的应用程序的一个错误,自从我第一次发布以来,我还没有包含这些功能。第一个版本没有提到 IDFA 的使用。

【问题讨论】:

  • 我认为 Apple 又搞砸了... 3 天前,当您单击准备上传二进制文件时,它会询问您有关 IDFA 的信息,然后上传没有问题。 2 天前,当您点击准备上传二进制文件时,关于 IDFA 的问题消失了,上传二进制文件没有问题。昨天,当您单击“准备上传二进制文件”时,IDFA 问题已返回,您无法上传,因为(据说)IDFA 使用不当。所以我猜苹果又不小心改变了一些东西。
  • 我从 Xcode 5.1 更新到 5.1.1 但也没有修复它。

标签: ios objective-c app-store-connect


【解决方案1】:

嗯,这个错误发生在大约 15 天前,直到 Apple 在同一天发布 Xcode 更新并且之后一切都顺利进行,才知道是什么原因。同样,尽管我尝试为 8 天前提交的应用程序上传相同的构建,但今天我收到了相同的消息。 我想我们只需要等待几个小时,看看会发生什么。

编辑:这是一个链接,显示人们当时抱怨它以及如何在不做任何事情的情况下解决它:LINK

更新:对于使用 PlayHaven 广告的任何人,这可能有助于避免此错误。评论以下 2 部分:

在文件 PHAdRequest.m 中(第 35-44 行)

/*    if (![PHAPIRequest optOutStatus] && [ASIdentifierManager class])
{
    NSUUID *uuid = [[ASIdentifierManager sharedManager] advertisingIdentifier];
    NSString *uuidString = [uuid UUIDString];

    if (0 < [uuidString length])
    {
        theIdentifiers[@"ifa"] = uuidString;
    }
}*/

在 PHAPIRequest.m(第 379-383 行)中:

/*    if ([ASIdentifierManager class])
{
    NSNumber *trackingEnabled = [NSNumber numberWithBool:[[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled]];
    [combinedParams setValue:trackingEnabled forKey:@"tracking"];
}*/

这是 PlayHaven 更新 SDK 之前的临时解决方法。

【讨论】:

  • 如果我的应用处于“等待上传”状态,我在哪里可以更改 IDFA 使用情况?
  • 上传任何不包含广告支持框架的空应用,在它被标记为“等待审核”后拒绝二进制文件并进行“准备上传”。您可以在此处编辑 IDFA 使用情况。
  • 如果我改为使用 IDFA 对我的应用程序有帮助吗?使用 IDFA 会受到哪些限制?
  • 如果您之前已经这样做了,那么您不需要做任何事情,否则只需选择“是”和第一个选项。
  • 就我而言,我使用的是 Admob GAI,横幅。但是在第一次应用程序被批准...无论如何,我用 IDFA 重新加载了我的新版本,正如你在上面写的那样。这种方式行得通。
【解决方案2】:

对于 PlayHaven,将 PH_USE_AD_SUPPORT 设置为 0 将禁用 AdSupport 框架。

PHConstants.h

/**
 * By default, PlayHaven will require the AdSupport framework. Projects using a version of
 * Xcode older than 4.5 may define \c PH_USE_AD_SUPPORT to be 0.
 *
 * @note By disabling the AdSupport framework, the SDK will not be able to collect the IFA
 **/
#ifndef PH_USE_AD_SUPPORT
#define PH_USE_AD_SUPPORT 1
#endif

在提交时为我修复“不正确的广告标识符”。

【讨论】:

    【解决方案3】:

    我在另一个 similar question 上提供了这个答案,它似乎有帮助,我认为我的答案也特别适合这个问题......

    我在更新之前更新正常的应用程序时遇到了类似的错误,然后在 Apple 最近进行了更改后,几天前又导致了错误。我没有使用任何广告,但确实有 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) 存档项目,它应该(在我的情况下)很好上传

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

    【讨论】:

    【解决方案4】:

    只需上传您的二进制文件,然后将 IDFA 大致分为两类:

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

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

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

    【讨论】:

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