# Debug 模式
Debug 模式旨在方便开发人员调试代码,只用于集成阶段的数据验证。请注意 Debug 模式可能会影响数据采集质量和 App 的稳定性,请不要在线上环境使用。
# 一、开启 Debug 模式
# 1.1 Android SDK
Android SDK 实例支持三种运行模式,在 TDConfig 中定义,请选用DEBUG
或DEBUG_ONLY
模式:
/**
* 实例运行模式, 默认为 NORMAL 模式.
*/
public enum ModeEnum {
/* 正常模式,数据会存入缓存,并依据一定的缓存策略上报 */
NORMAL,
/* Debug 模式,数据逐条上报。当出现问题时会以日志和异常的方式提示用户 */
DEBUG,
/* Debug Only 模式,只对数据做校验,不会入库 */
DEBUG_ONLY
}
比如以下代码是使用 Debug 模式完成 SDK 初始化:
// 获取 TDConfig 实例
TDConfig config = TDConfig.getInstance(mContext, TA_APP_ID, TA_SERVER_URL);
// 设置运行模式为 Debug 模式
config.setMode(TDConfig.ModeEnum.DEBUG);
// 初始化 SDK
instance = ThinkingAnalyticsSDK.sharedInstance(config);
# 1.2 iOS SDK
iOS SDK 实例支持三种运行模式,在 TDConfig
中定义,请选用DEBUG
或DEBUG_ONLY
模式:
/**
Debug模式
- ThinkingAnalyticsDebugOff : 默认 不开启Debug模式
*/
typedef NS_OPTIONS(NSInteger, ThinkingAnalyticsDebugMode) {
/**
默认 不开启Debug模式
*/
ThinkingAnalyticsDebugOff = 0,
/**
开启Debug_only模式,只对数据做校验,不会入库
*/
ThinkingAnalyticsDebugOnly = 1 << 0,
/**
Debug 模式,数据逐条上报。当出现问题时会以日志和异常的方式提示用户
*/
ThinkingAnalyticsDebug = 1 << 1
};
比如以下代码是使用 Debug 模式完成 SDK 初始化:
// 获取 TDConfig 实例
TDConfig *config = [[TDConfig alloc] init];
// 设置运行模式为 Debug 模式
config.debugMode = ThinkingAnalyticsDebug;
// 初始化 SDK
ThinkingAnalyticsSDK *instance = [ThinkingAnalyticsSDK startWithAppId:@"YOUR_APPID" withUrl:@"YOUR_SERVER_URL" withConfig:config];
# 1.3 其他客户端 SDK
其他客户端 SDK Debug 模式开启说明详见各 SDK 使用指南:
# 二、添加 Debug 设备
为了避免 Debug 模式在生产环境上线,需指定设备才能开启 Debug 模式。只有在客户端开启了 Debug 模式,并在埋点管理 →Debug 模式中进行接入配置的设备才能开启 Debug 模式。
设备 ID 可以通过以下两种方式获取:
- 客户端日志:SDK 初始化完成后会打印设备
DeviceId
- 通过调用
getDeviceId
来获取设备 ID
# 三、使用说明
连接设备后,通过设备上报的数据将实时展示在数据列表中,针对校验出现错误的数据将给出具体的错误原因以便排查。
- 切换设备: 点击可切换当前接入设备或添加新设备;
- 暂停加载: 测试过程中若希望定位在当前某事件做进一步处理,可点击「暂停加载」,暂停状态下产生的数据(如设置的自动采集事件)将在数据表上方提示。点击「开始加载」可切换至实时加载状态。
- 搜索事件: 搜索筛选仅展示指定事件或用户属性。
- 埋点对比: 若您在测试数据前,在埋点管理 → 埋点方案模块维护了埋点方案信息,可选择开启“埋点对比”,即可在测试阶段获取测试数据与埋点方案的差异,及时调整埋点代码。
开启埋点对比后,在错误原因中将增加返回基于埋点方案对比的错误信息(对比内容不包括预置属性)。可能出现的错误包括:
- 事件不在埋点方案中
- 存在不在埋点方案中,但实际有上报的属性
- 存在属性缺失,即在埋点方案中,但实际无上报的属性
- 存在上报属性类型与埋点方案中的属性类型不一致
- 清空列表: 点击可清空当前数据列表,被清空的数据将不再展示。清空操作只清空日志,不删除已入库事件。
# 四、最佳实践
# 4.1 使用 Debug 模式调试埋点
Debug 模式非常适合在新增埋点时,对埋点的正确性进行验证。在测试埋点前,先获取设备在 TA SDK 中的设备 ID#device_id
,在 Debug 模式中添加该设备。之后在 IDE 或自己的设备中触发埋点,同时关注 Debug 模式中展示的数据,主要关注数据是否上传以及数据是否正确。
# 4.2 开启埋点对比
在“埋点方案”页上传方案后,您可选择开启“埋点对比”,即可在测试阶段获取测试数据与埋点方案的差异,及时调整埋点代码。注意该功能的校验结果中不包括预置属性的校验。