概述
MSDK集成了Bugly的数据上报功能,能够将客户端crash时客户端的信息上传到服务器,供开发者查看。 能帮助开发者发现应用在线上的致命bug。
显示详情接入向导
MSDK 3.3.30 版本开始,Bugly 以插件化形式提供,业务可按需合入。如果不需要,可按照对应路径删除即可。
插件路径
- MSDKDemo/Library/MSDKBugly/MSDKBugly.framework
1 前置条件
1) 您已经按初始化模块说明完成 初始化
2) App 还原符号表配置
请到Bulgy平台设置还原符号表,网址为:http://bugly.qq.com/,可以参考bugly官网中符号表配置中的方式来进行配置。
2 参考Demo示例
回调设置参考 MSDKDemo/MyObserver.mm 文件的 OnCrashExtMessageNotify 方法。
接口调用参考 MSDKDemo/LoginSucceedVC.mm 文件各个方法调用 WGBuglyLog 的位置。
3 查看上报数据
请使用协作者账号登录到bugly.qq.com的网站上,选择您要查看的应用,如下图所示,查看bugly上报的数据。如果您不知道协作者账号,请企业微信联系“MSDK助手”账号。
上报添加额外日志回调
1)功能描述
当程序Crash时,会有回调 OnCrashExtMessageNotify 通知游戏,此时游戏可以添加一些额外的自定义数据,随crash日志一起上报到Bugly平台,这样可以更好的定位造成crash的原因。 上报的数据可以在Bugly平台上可以在“自定义日志”->“额外数据”中找到。
2)接口声明
std::string OnCrashExtMessageNotify();
3)参数说明
无
4)返回值
返回值类型 | 说明 | |
---|---|---|
string | crash时上报用户自定义字符串 |
5)示例代码
std::string MyObserver::OnCrashExtMessageNotify()
{
return "dsafdasfsafdasdfasdf";
}
6)特殊说明
在进行native上报时,崩溃过快时无多余时间执行此回调,该回调有可能失效。如需要更有效的上报数据方法,可调用Bugly自定义日志上报接口WGBuglyLog。
7)名词解释
无
上报Lua/C#/JS脚本错误
1)功能描述
当游戏Lua/C#/JS脚本发生异常时,可以向bugly上报这些异常信息,可以在bugly上"错误分析" ->"Lua脚本错误/C#脚本错误/JS脚本错误"标签下查看这些上报
2)接口声明
void WGReportException(eExceptionType exception_type,
unsigned char *exception_name,
unsigned char *exception_msg,
unsigned char *exception_stack,
std::vector<KVPair> &ext_info)
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
exception_type | eExceptionType枚举类型 | 异常上报类型 |
exception_name | unsigned char * | 异常名字 |
exception_msg | unsigned char * | 异常信息 |
exception_stack | unsigned char * | 异常堆栈 |
ext_info | vector |
事件内容,一个key-value形式的vector;key最大长度64,value最大长度1024,key个数最大50,key建议使用"B1","B2"规则命名,以减少流量消耗 |
4)返回值
无
5)示例代码
std::vector<KVPair>extInfo;
KVPair item;
item.key="extInfo_Body";
item.value=std::string("wegame_extInfo_body");
eveList.push_back(item);
WGPlatform::GetInstance()->WGReportException((eExceptionType) exceptionType,
"MSDK_excetipon_name",
"MSDK_exception_msg",
"MSDK_exception_stack_test",
extInfo);
6)特殊说明
无
7)名词解释
无
Bugly自定义日志上报
1)功能描述
在某些native crash的场景下,注册给bugly的 OnCrashExtMessageNotify 事件回调函数可能无法得到执行,推荐您使用自定义日志的接口。用此接口可以在游戏运行过程中记录游戏需要的日志并缓存起来,并在发生异常时上报(上报日志最大30K)。
在bugly页面上可以在 "错误分析" -> "自定义错误" 查看上报的自定义日志。
2)接口声明
void WGBuglyLog (eBuglyLogLevel level, unsigned char* log);
3)参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
level | enum | 详见结构体说明中eBuglyLogLevel部分 |
log | unsigned char* | 要上传(打印)的内容 |
4)返回值及回调说明
无
5)示例代码
WGPlatform::GetInstance()->WGBuglyLog(eBuglyLogLevel_I, (unsigned char*)"login qq, flag:0");
6)特殊说明
无
7)名词解释
无
动态关闭bugly上报
1 概要说明
动态关闭bugly上报。调用时会关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。
2 接口调用
1)功能描述
有些场景下,应用不需要崩溃上报,如:有些应用在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。
2)接口声明
void WGCloseCrashReport();
3)参数说明
无
4)示例代码
WGPlatform::GetInstance()->WGCloseCrashReport();
6)特殊说明
调用该接口关闭崩溃上报后,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。
7)名词解释
无