当您的项目代码需要做打包混淆时,需要上传符号表,进行版本管理。本文介绍制作、上传符号表文件的操作步骤。
前提条件
符号表格式
- Android符号表
xxx.zip |-- mapping.txt --存在多个mapping.txt文件时,需手动合并到一个文件中。 |-- libxx1.so --要求与发布的so文件同名。 |-- libxx2.so |-- armeabi-v7a |-- libxx3.so --多个架构时,需将文件放到对应的架构目录中。 |-- x86 |-- libxx3.so --多个架构时,需将文件放到对应的架构目录中。
- iOS符号表
xxx.zip |-- demo.ios.app.dSYM |--Contents |--Resources |--DWARF |--iOS --主应用符号,要求与xcode模块同名,路径无限制。 |-- sdk1 --sdk1符号,要求与xcode模块同名,路径无限制。 |-- sdk2 --sdk2符号,要求与xcode模块同名,路径无限制。
- 将编译生成的.dSYM文件夹直接打包为.zip文件即可。
- 如果存在第三方库,可将第三方库与.dSYM文件夹一起打包,目录层级无限制。
- 如果不存在.dSYM文件,可上传未加密的ipa文件作为符号表。此方式可定位函数名,无法定位文件名及行号。
步骤一:制作符号表文件
制作Android符号表文件
制作iOS符号表文件
步骤二:上传符号表文件
- 登录日志服务控制台。
- 在日志应用区域,单击移动运维监控。
- 在应用列表中,单击目标应用。
- 创建版本。
- 在左侧导航栏中,单击版本管理。
- 在版本管理页签中,单击新建版本。
- 在新建版本对话框中,设置版本、子版本和版本说明,然后单击确定。
- 上传符号表。
常见问题
- 如何生成带buildid的so文件?
检查编译参数,确定没有
--build-id=none
,即表示生成带buildid的so文件。如果没有buildid,可以添加编译参数ld_flags += -Wl,--build-id=sha1
。 - 如何检查so文件是否带buildid?
通过file命令检查so文件是否带buildid。
file libsls_producer.so
返回如下类似结果,表示so文件带buildid。
libsls_producer.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=3c83e72280f649227f59eb9414f14cadb75de698, stripped
- 通过Xcode打包后没有生成.dSYM文件,怎么处理?
请确认目标TARGETS中的Build Options配置是否正确。