【问题标题】:Google analytics 3.08 IOS idfa class missing, won't collect idfa谷歌分析 3.08 IOS idfa 类丢失,不会收集 idfa
【发布时间】:2014-09-17 06:33:32
【问题描述】:

我下载了谷歌分析,并按照他们的说明如何在应用程序中实施分析。但无论我尝试什么,我都会在 xcode 中得到这个日志:idfa class missing, won't collect idfa。

所以我谷歌它,发现苹果会拒绝有这个警告的应用程序。我还发现谷歌在 3.03c 版本中修复了这个问题,而且我们不必导入使用广告的库。我也运行了他们的示例,并且在他们的示例中得到了相同的日志。

所以我的问题是,Apple 会批准我的申请吗?我该如何解决?

【问题讨论】:

    标签: ios objective-c logging google-analytics console


    【解决方案1】:

    我也有同样的问题。它接缝 3.08 lib 与 iAd.Framework 链接 这就是我所做的——我已经回滚到 3.03c 版本。你可以在这里下载 "https://dl.google.com/googleanalyticsservices/GoogleAnalyticsServicesiOS_3.03c.zip

    最好的方法是使用Cocopoads 和pod 'GoogleAnalytics-iOS-SDK', '3.0.3c' 管理库

    【讨论】:

    • 我使用的是 3.0.3c。我不想使用 IDFA,你知道如何让 App 通过 Apple 的审核吗?他们拒绝它,他们说要删除任何广告标识符和东西的实例。
    • Kevin Delord 的解决方案解决了这个问题,而无需更新到较旧的 SDK,它
    • 这是可行的,但是。当您将应用程序发布到 App Store 时,您必须指定为什么使用 IDFA。你的APP正在使用广告,但实际上并没有。所以不会去那个解决方案。
    • 在 3.10 中仍然是一个问题。我按照您的建议切换到 3.0.3c,警告消失了。如果我不使用 iAd 库,我不想将它们添加到我的项目中!
    • 您应该使用来自 Google 的新 Pod,而不是手动链接,其中包括 pod 'GoogleIDFASupport'
    【解决方案2】:

    我正在使用3.0.9。通过链接GoogleAnalytics SDK 和AdSupport.framework 提供的libAdIdAccess.a 库,我能够删除警告。

    【讨论】:

    • 如果升级到 3.10 版本,请将 googleAnalyticsHeader 文件夹替换为下载的文件夹。这包含“libAdIdAccess.a”和“GAIEcommerceProductAction”和“GAIEcommerceFields”作为附加文件。
    【解决方案3】:

    我使用的是 3.0.9 版本,为了摆脱这个警告,我必须手动链接库 libAdIdAccess.a 和 AdSupport.framework。

    为此,只需将以下行添加到您的构建设置Other Linker Flags (OTHER_LDFLAGS):

    -框架广告支持

    -force_load "${PODS_ROOT}/GoogleAnalytics-iOS-SDK/libAdIdAccess.a"

    它应该看起来像这样:

    链接:Official Documentation

    【讨论】:

    • 我通过 cocoapods 安装了谷歌分析,显然 libAdIdAccess.a 没有包含在框架中,所以除了这个解决方案之外,我还必须下载框架并手动将库放在指定的位置。这消除了警告。
    • 从 3.10 版开始,如果您通过 CocoaPods 安装 Google Analytics,您可以通过 pod 'GoogleAnalytics-iOS-SDK/IDFA' 安装其子规范,libAdIdAccess 将自动添加到您的项目中。
    【解决方案4】:

    仅用于完成其他响应。我正在使用 Google Analytics SDK v3.09,我在 Xcode 6 中没有使用 CocoaPod 进行集成。 为了消除警告,我只是通过拖放将 libAdIdAccess.a 静态库添加到我的项目中。

    AdSupport.framework 已包含在我的项目中。

    注意:我不知道为什么,但有时,Xcode 被误认为是通过这种方式添加新库的路径,从而导致链接错误。在这种情况下,只需从 Build Settings 修改 Library Search Path 选项中的路径:将 $(PROJECT_DIR)/YourDirectory/GoogleAnalyticsLibrary-3.09 替换为 "$(SRCROOT)/YourDirectory/GoogleAnalyticsLibrary-3.09"

    【讨论】:

    • 拖入 libAdIdAccess.a 只是门票!谢谢。 :]
    【解决方案5】:

    我正在使用 v3.08 并收到相同的警告。我刚刚提交了我的应用程序并获得了 Apple 的批准。我认为他们知道这个问题,但在我的情况下没有强制执行。您可以提交您的应用程序,并在提交和决定删除 3.08 并返回到 3.03c 之间的时间,以防万一他们拒绝它。

    【讨论】:

      【解决方案6】:

      GoogleAnalytics-iOS-SDK 已被弃用,取而代之的是 谷歌分析

      所以只需将 pod 文件中的行替换为

       pod 'GoogleAnalytics'
      

      【讨论】:

        【解决方案7】:

        您所要做的就是将libAdIdAccess.a 添加到您的项目中。它是GoogleAnalyticsServicesiOS_3.09 交付的一部分。

        【讨论】:

          【解决方案8】:

          pod 'GoogleIDFASupport'

          这会让 cocoapods 得到你需要的东西。我也不必执行 force_load 。

          安装 GoogleIDFASupport (3.14.0) 使用 GoogleTagManager (3.15.0)

          【讨论】:

            【解决方案9】:

            我使用的是 3.0.3c 而不是 IDFA。

            但是,“idfa class missing”仍在记录中。

            GAI.sharedInstance().logger.logLevel = GAILogLevel.Verbose
            

            我通过尝试删除上面的行解决了这个问题。

            【讨论】:

              【解决方案10】:

              我使用的是 3.0.9。根据 Google 文档,您需要在每个跟踪器上将 tracker.allowIDFACollection 设置为 NO。

              id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
              tracker.allowIDFACollection = NO;
              

              这将删除警告。

              【讨论】:

              • 我尝试使用 3.0.9,但仍将警告作为控制台中的第一项。此外,标头指出此值默认设置为 NO (false)。
              • 对我也不起作用。我正在使用通过 CocoaPods 安装的 3.0.9。
              • 我认为你需要链接到 Googke 提供的 libAdIdAccess.a 库中。
              猜你喜欢
              • 2014-12-04
              • 2015-08-05
              • 2015-09-02
              • 1970-01-01
              • 1970-01-01
              • 2021-02-25
              • 1970-01-01
              • 2021-03-10
              相关资源
              最近更新 更多