【问题标题】:How to set Google Analytics tracker ID in build.gradle instead of xml?如何在 build.gradle 而不是 xml 中设置 Google Analytics 跟踪器 ID?
【发布时间】:2018-10-13 03:00:03
【问题描述】:

服务器 URL 和 SDK 密钥等所有环境特定密钥目前都保存在 build.gradle 文件中。这样做的目的是使用buildTypes 在开发环境和生产环境之间轻松切换。

我将 Google Analytics 添加到应用程序中,该应用程序通过包含跟踪器 ID 的 res/xml/app_tracker.xml 文件进行配置:

<string name="ga_trackingId" translatable="false">UA-12345678-9</string>

如何将跟踪器 ID 移动到 build.gradle 文件的 buildTypes 中,以便为每个环境定义不同的 GA 跟踪器 ID?


编辑

我在build.gradle中试过这个:

buildTypes {
  release {
    resValue "string", "GOOGLE_ANALYTICS_TRACKER_ID", "UA-12345678-9"
  }
}

自动生成 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <!-- Automatically generated file. DO NOT MODIFY -->

    <!-- Values from build type: debug -->
    <string name="GOOGLE_ANALYTICS_TRACKER_ID" translatable="false">UA-12345678-9</string>

</resources>

但这似乎在app_tracker.xml 文件中不起作用:

<string name="ga_trackingId" translatable="false">@string/GOOGLE_ANALYTICS_TRACKER_ID</string>

【问题讨论】:

标签: android android-gradle-plugin build.gradle google-analytics-sdk


【解决方案1】:

根据您提出的问题,您希望为不同的环境维护多个跟踪器 ID。

所以我们不需要在build.gradle中维护UA-XXX,而是需要在Application类中指定多个不同UA-XXX的xml文件

private static final String PROPERTY_ID = "UA-XXXXX-Y";


  public enum TrackerName {
    PROD_ENV_TRACKER, // Tracker used for Production Environment.
    DEV_ENV_TRACKER, // Tracker used for Devlopment Environment.
    STAGE_ENV_TRACKER, // Tracker used for Stage Environment.
  }

  HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

  public AnalyticsSampleApp() {
    super();
  }
  synchronized Tracker getTracker(TrackerName trackerId) {
    if (!mTrackers.containsKey(trackerId)) {

      GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);
      Tracker t = (trackerId == TrackerName.PROD_ENV_TRACKER) ? analytics.newTracker(PROPERTY_ID)
          : (trackerId == TrackerName.DEV_ENV_TRACKER) ? analytics.newTracker(R.xml.dev_env_tracker)
              : analytics.newTracker(R.xml.stage_env_tracker);
      mTrackers.put(trackerId, t);

    }
    return mTrackers.get(trackerId);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多