# 符号表格式
# 说明:上传日志测试前提前上传符号表。
# 1. Java 符号
多个mapping文件请自行处理追加到一个文件中,最终命名为mapping.txt,并打包成zip文件,如果同时包含so符号,可以把so文件打包在一起。
# 2. Android so库
保证符号表的so文件与发布的so文件同名,so压缩前超过100MB的,请向岳鹰平台管理员申请资源;
如果一个版本里包含同文件名,不同架构的so,可以压缩到不同的目录中,反符号化时需要通过buildid去关联;
建议编译时使用-g参数,带上debug信息,崩溃堆栈可以解析到代码行级,实际发布时,再使用strip命令去掉调试信息;如果不带debug信息,则只能定位到函数名级
下列情况下,需要so文件带有buildid
- 不同CPU架构的so文件名一样,放在不同的路径下
- 同一个应用版本里,可能有多个版本的so库,使用了动态加载的技术
如何生成带buildid的so,请检查编译参数,确保没有带"--build-id=none",如果还是没有buildid,可以添加编译参数"ld_flags += -Wl,--build-id=sha1"
可通过file命令检查so文件是否带buildid,调试信息。
# 3. iOS OC符号
请编译生产的dSYM文件夹直接zip压缩即可,如果有第三方库,可以把第三方库一起打包,目录层次不作要求。如果没有保存好dSYM文件,也可以上传未加密的ipa文件作为符号表,可以定位到函数名,无法定位文件名及行号。iOS 符号表通过UUID做关联,可以通过以下命令查看符号表的UUID。
xcrun dwarfdump --uuid 符号表文件路径
检查与日志中image块的可执行模块的uuid是否一致。