2015-07-13 3 views
2

Мое приложение отслеживает информацию с mixpanel, но отслеживает все. Поэтому, когда я тестирую или отлаживаю, он отслеживает тоже. Я хочу знать, если есть чистый/лучший способ, чтобы отключить отслеживание лучше, чем это в каждом mixpanel вызове:Каков наилучший способ не отслеживать события mixpadel в Android при отладке или в отладочной версии?

if (!BuildConfig.DEBUG) { 
    // track events 
} 
+0

Я бы поставил статические методы-обертки для методов отслеживания MixPanel, которые принимают решение о том, следует ли отслеживать событие аналогично фрагменту кода. – harism

ответ

0

Они, как я справилась с этим было путем создания другого проекта для моих экземпляров локальных/Девых. Таким образом, я могу отслеживать события, не вмешиваясь в производственные данные.

Я использую PHP SDK, но вы можете сделать что-то подобное:

public function loadMixPanel() { 
    $token = "PRODUCTION TOKEN"; 
    if ($this->instance !== 'PRODUCTION') { 
     $token = "TEST TOKEN"; 
    } 
    $this->mixpanel = Mixpanel::getInstance($token); 
} 
0

Наконец, я создал окончательную строку на классе, который отправляет свойства 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 I может фильтровать это свойство.

0

Я использую mixpanel для отслеживания событий в приложении для Android. Для отслеживания событий в приложении для отладки и выпуска отдельно, я создал разные типы сборки для отладки и выпуска версии нашего приложения, с помощью которых я могу дать разные имена пакетов для Android для отладки и выпуска приложения. В mixpanel у меня есть два проекта для этих двух приложений. Кроме того, поскольку он только изменяет пакет android, а не пакет java, код остается тем же. Вам просто нужно выбрать вариант сборки (отладка или выпуск). Еще одно преимущество заключается в том, что вы можете одновременно использовать оба приложения на своем телефоне, поскольку оба имеют разные имена пакетов. Вот пример конфигурации градиента для того же самого.

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"' 
    } 
} 

Вы можете получить mixpanel маркер с BuildConfig.MIXPANEL_PROJECT_TOKEN для инициализации mixpanel внутри активности

0

BuildConfig.DEBUG не работает хорошо для меня, и я wan't изменить buildTypes поэтому я использую что-то вроде ниже метода. Это возможно, потому что я использую proguard при выпуске apk.

Надеюсь, это поможет.

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; 
}