崩溃分析系统

来自AnySDK 文档
跳转至: 导航搜索
崩溃分析SDK为APP提供了质量追踪一体化解决方案平台,主要是为移动应用开发者提供每个APP的实时、全面、专业的错误分析服务,让你不会错过任何一个崩溃信息,帮助全面提升APP的整体质量。

相关接口

设置用户标示

为每一条上报记录设置用户标识,可以方便后期筛选和定位问题,比如开发人员想看到自己手机上报的崩溃信息,就可以采用这种方式:

void setUserIdentifier(const char* identifier);

//设置用户唯一标示符
crash_plugin = agent.getCrashPlugin();
if (crash_plugin && crash_plugin.setUserIdentifier) 
{
    crash_plugin.setUserIdentifier("AnySDK");
}

主动上报异常  

主动上报异常可帮助您来修正 BUG、改善产品。报表中,我们除了提供错 误次数的数据外,还提供错误的详细信息阅览,并会对错误进行合理分类。 

void reportException(const char* message, const char* exception);

//手动上报Exception
crash_plugin = agent.getCrashPlugin();
if (crash_plugin && crash_plugin.reportException)
{
    crash_plugin.reportException(errID, errMsg);
}

面包屑

      面包屑与日志信息类似,是开发人员自己定义的文本字符串。开发人员通过插入面包屑来记录应用程序运行时的信息,如变量值、应用程序状态、代码进展、用户操作、程序性能,以及回调(如低存储器警告)等事件。对于每个面包屑会话,SDK中自动存储的start痕迹标记用户会话的开始,每个面包屑会话最多有100条面包屑,每条面包屑最多可包含199个字符。添加面包屑:开发人员只需插入一个API调用。

      抓取的面包屑可以帮助开发人员:识别和分析会话事件、状态或参数来进行调试。利用这些信息,以及堆栈信息、诊断和用户搜索,确定问题根源。补充IDE调试,使他们能够捕获有关应用程序行为的有用信息,以便获得更多的用户。
void leaveBreadcrumb(const char* breadcrumb);

//设置面包屑
crash_plugin = agent.getCrashPlugin();
if (crash_plugin && crash_plugin.leaveBreadcrumb) 
{
    crash_plugin.leaveBreadcrumb(eventID);
}

符号化

Android应用通常在发布前都会混淆处理,这样SDK上报来的堆栈信息就会变得不可读。如可能是a.bf.ef.ag(),符号化的功能可以将堆栈信息还原为正常的信息。此功能需要上传版本混淆编译后的mapping.txt文件,一般位于proguard目录下。选择对应的应用版本,上传mapping文件,每个版本只能保留一个文件,重新上传会替换原有文件。

.so文件的上传,如果需要符号化NDK的错误,必须上传该版本编译时obj目录下的.so文件,并单独压缩成zip文件上传,并且大小不超过50M。如果文件已存在,新上传的文件将覆盖原有文件。

iOS的符号化需要Archive打包,将xcarchive文件包中dSYMs文件夹下的dSYM文件压缩zip上传。这个dSYM文件可以符号化该xcarchive文件包生成的程序(.ipa文件)。