在debuggin或debug发行版中,不跟踪android mixpanel事件的最佳方法是什么?
我的应用程序使用mixpanel跟踪信息,但跟踪所有内容。所以当我测试或调试时,它也会跟踪。我想知道在每个mixpanel调用中是否有比这更好的干净/最好的方法来禁用跟踪:在debuggin或debug发行版中,不跟踪android mixpanel事件的最佳方法是什么?,android,coding-style,solid-principles,mixpanel,Android,Coding Style,Solid Principles,Mixpanel,我的应用程序使用mixpanel跟踪信息,但跟踪所有内容。所以当我测试或调试时,它也会跟踪。我想知道在每个mixpanel调用中是否有比这更好的干净/最好的方法来禁用跟踪: if (!BuildConfig.DEBUG) { // track events } 我处理这个问题的方法是为我的本地/dev实例创建一个不同的项目。这样我就可以跟踪事件而不会弄乱生产数据 我使用的是php sdk,但您可以执行类似的操作: public function loadMixPanel() { $
if (!BuildConfig.DEBUG) {
// track events
}
我处理这个问题的方法是为我的本地/dev实例创建一个不同的项目。这样我就可以跟踪事件而不会弄乱生产数据 我使用的是php sdk,但您可以执行类似的操作:
public function loadMixPanel() {
$token = "PRODUCTION TOKEN";
if ($this->instance !== 'PRODUCTION') {
$token = "TEST TOKEN";
}
$this->mixpanel = Mixpanel::getInstance($token);
}
最后,我在类上创建了最后一个字符串,将属性发送到Mixpanel,如下所示:
private static final String MIXPANEL_PROP_BUILD_TYPE = (BuildConfig.DEBUG) ? "DEBUG_MODE" : "RELEASE_MODE";
我总是将这个附加到JSON的属性发送到MIXPANEL:
props.put(MIXPANEL_PROP_BUILD, MIXPANEL_PROP_BUILD_TYPE);
在mixpanel中,我可以按此属性进行筛选 我正在使用mixpanel跟踪android应用程序中的事件。为了分别跟踪debug和release应用程序中的事件,我为我们的应用程序的debug和release版本创建了不同的BuildType,通过它我可以为debug和release应用程序指定不同的android软件包名称。在mixpanel中,我有两个用于这两个应用程序的项目。此外,由于它只更改android包而不更改java包,所以代码保持不变。您只需要选择构建变量(调试或发布)。另一个优点是,你可以在手机上同时使用这两个应用,因为它们都有不同的软件包名称。下面是相同的gradle配置示例
buildTypes {
debug {
applicationIdSuffix ".debug"
resValue "string", "app_name", "Debug"
buildConfigField "String", "MIXPANEL_PROJECT_TOKEN", '"asdaskjdaksdjksdhkashd"'
}
release {
debuggable true
minifyEnabled false
resValue "string", "app_name", "Release"
buildConfigField "String", "MIXPANEL_PROJECT_TOKEN", '"asfksfkabfabsmabsmbasd"'
}
}
您可以使用
BuildConfig.mixpanel\u PROJECT\u token
获取mixpanel令牌,以初始化活动内部的mixpanelBuildConfig.DEBUG对我不起作用,我不想更改构建类型,因此我使用类似于下面的方法。这是可能的,因为我在发布apk时使用proguard
希望这有帮助
private static Boolean DEBUG = null;
public static boolean isDebug()
{
// yes, it's insane but...
if (DEBUG == null) DEBUG = MyBeautifulClassName.class.getSimpleName().contains("MyBeautifulClassName");
return DEBUG;
}
我将为MixPanel跟踪方法创建静态包装器方法,这些方法决定是否像代码片段一样跟踪事件。