HarmonyOS NEXT 符号表管理

移动分析支持通过符号表对 HarmonyOS NEXT App 的闪退日志进行反向解析,以便定位 App 中的问题代码,帮助提高排查、解决线上异常问题的效率,同时提供 HarmonyOS NEXT 符号表管理功能以便导入、查询符号表并进行符号表反解测试。

HarmonyOS NEXT 符号表

鸿蒙(HarmonyOS NEXT) App 主要由 arktsnative (c/cpp) 语言开发,对于 arkts (ets/ts/js) 语言,对应的符号表是 sourceMap;对于 native(c/cpp) 语言,对应的符号表在 so 动态库中。

鸿蒙 App 出现闪退时,闪退日志中的 Crash 堆栈为混淆后的堆栈信息,需要通过符号表对这些堆栈信息进行反向解析,将其转换为可读的函数名和行数,以便定位 App 中出现问题的代码。

导入 HarmonyOS NEXT 符号表

对闪退日志进行符号反解前,要先上传符号表。在 HarmonyOS NEXT 平台中,sourcemap 文件是保存arkts (ets/ts/js)符号表的目标文件,文件名通常为 sourceMaps.map(路径在entry/build/default/cache/default/default@CompileArkTS/esmodule/release/sourceMaps.map);so 文件是保存 native (c/cpp) 符号表的目标文件,文件名通常为 xxx.so。建议每次构建或发布 App 的时候,备份好sourceMaps.map 和 so文件。

上传 HarmonyOS NEXT 符号表的步骤如下:

  1. 登录 mPaaS 控制台,选择目标应用后,从左侧导航栏进入 移动分析 > 性能分析 > 鸿蒙符号表管理 页面。

  2. 导入 sourcemap 符号表,选择导入,填入对应的 版本Module Name(可以在鸿蒙开发项目中查看 app.json5versionNamebundleName)。

    image

  3. 导入 so 符号表,选择 导入,填入 so 文件的下载地址或者本地文件。

    image