《崩溃分析》

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

相关接口

设置用户标识

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

//设置用户唯一标识符
void Crash::setUserIdentifier()
{
    ProtocolCrash* crash = AgentManager::getInstance()->getCrashPlugin();
    if(crash)
    {
        crash->setUserIdentifier("AnySDK");
    }

}

主动上报异常

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

//手动上报Exception
void Crash::reportException()
{
    ProtocolCrash* crash = AgentManager::getInstance()->getCrashPlugin();
    if(crash)
    {
        crash->reportException("message", "exception");
    }   
}

面包屑

面包屑与日志信息类似,是开发人员自己定义的文本字符串。开发人员通过插入面包屑来记录应用程序运行时的信息,如变量值、应用程序状态、代码进展、用户操作、程序性能,以及回调(如低存储器警告)等事件。对于每个面包屑会话,SDK 中自动存储的 start 痕迹标记用户会话的开始,每个面包屑会话最多有 100 条面包屑,每条面包屑最多可包含 199 个字符。添加面包屑:开发人员只需插入一个 API 调用。
抓取的面包屑可以帮助开发人员:识别和分析会话事件、状态或参数来进行调试。利用这些信息,以及堆栈信息、诊断和用户搜索,确定问题根源。补充 IDE 调试,使他们能够捕获有关应用程序行为的有用信息,以便获得更多的用户。
void leaveBreadcrumb(const char* breadcrumb);

//设置面包屑
void Crash::leaveBreadcrumb()
{
    ProtocolCrash* crash = AgentManager::getInstance()->getCrashPlugin();
    if(crash)
    {
        crash->leaveBreadcrumb("bread");
    }

}

符号化

Android 应用通常在发布前都会混淆处理,这样 SDK 上报来的堆栈信息就会变得不可读。如可能是 a.bf.ef.ag(),符号化的功能可以将堆栈信息还原为正常的信息。此功能需要上传版本混淆编译后的 mapping.txt 文件,一般位于 proguard 目录下。选择对应的应用版本,上传 mapping 文件,每个版本只能保留一个文件,重新上传会替换原有文件。
.so 文件的上传,如果需要符号化 NDK 的错误,必须上传该版本编译时 obj 目录下的 .so 文件,并单独压缩成 zip 文件上传,并且大小不超过 50 M。如果文件已存在,新上传的文件将覆盖原有文件。
iOS 的符号化需要 Archive 打包,将 xcarchive 文件包中 dSYMs 文件夹下的 dSYM 文件压缩 zip 上传。这个 dSYM 文件可以符号化该 xcarchive 文件包生成的程序(.ipa 文件)。

【评论区】