【问题标题】:Use Google Analytics for iOS without .plist file在没有 .plist 文件的情况下使用适用于 iOS 的 Google Analytics
【发布时间】:2016-01-28 23:13:08
【问题描述】:

根据 Google 的文档(iOS 分析),他们希望您下载一些自动生成的 .plist 文件来配置您的应用程序。不幸的是,我有多个报表包(调试、发布)并且需要根据构建动态切换。所以我正在尝试做以下两件事之一:

  1. 有没有办法完全放弃 .plist 文件并动态设置所有配置?需要什么价值观?

-或-

  1. 我可以更改 Google .plist 文件中的值以使用我项目的用户定义的构建设置中的变量吗?我尝试在 Google .plist 文件中添加一个名为 GOOGLE_ANALYTICS_ID 并通过 ${GOOGLE_ANALYTICS_ID} 引用它,但它并没有像我期望的那样替换值。

您如何根据您的应用是 Debug 还是 Release,动态指示您的应用发送到不同的报表包?

【问题讨论】:

    标签: ios google-analytics google-analytics-sdk


    【解决方案1】:

    您应该能够放弃 .plist 文件并像这样进行设置:

    #import "GAI.h"
    ...
    GAI *gai = [GAI sharedInstance];
    [gai trackerWithTrackingId:@"your GA id"];
    gai.trackUncaughtExceptions = YES;  // optional
    gai.logger.logLevel = kGAILogLevelVerbose;  // optional - remove for release
    

    不要使用 GGLContext 的东西,因为它试图从 -plist 文件中获取参数。

    【讨论】:

    • 在结合这个答案stackoverflow.com/a/24112024/1359306 时,我可以确认这是有效的。我使用了 swift 并将 trackUncaughtExceptions 设置为 true、trackerWithTrackingIddispatchInterval
    • 非常感谢您的建议!我不知道为什么文档甚至没有提到这种方法!我试图在构建阶段用运行脚本交换 plist 文件,直到找到这个选项!
    • 确认在 2017 年仍然有效!令人讨厌的是,这没有记录,也只能从 plist 中设置一个字段,无法设置 clientID、API_KEY 等,但对我来说,我需要的只是跟踪,设置 trackingID 似乎就足够了。
    • 有没有办法在 swift 中做同样的事情?
    【解决方案2】:

    遇到同样的问题。我的解决方案是为 QA​​ 和生产创建单独的构建目标,对代码中的目标特定设置使用预处理器宏,并为 facebook 应用程序 ID、捆绑 ID 等内容使用 2 个单独的 plist 文件(您可以指定哪个 plist 文件构建目标正在使用项目设置的信息选项卡)。

    与 GA 相同 - 每个目标有 2 个 plist 文件,并且为避免命名冲突(因为如果您从 GoogleService-Info 更改 plist 名称,应用程序将崩溃) - 只需将您的 QA plist 放在单独的文件夹中,它仍然会从那里开始工作就好了。

    不要为你的 plist 搞乱目标成员身份:)

    【讨论】:

      猜你喜欢
      • 2013-02-22
      • 2013-09-10
      • 1970-01-01
      • 2013-11-08
      • 2015-11-28
      • 2012-06-17
      • 1970-01-01
      • 2018-02-01
      相关资源
      最近更新 更多