本文主要是介绍利用.sym跨平台解析iOS符号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、背景
在iOS开发中,我们经常会遇到各种各样的线上问题,为了能够定位线上问题发生位置,我们搭建了各种各样收集信息的框架,当线上发生问题时,会收集到发生问题的方法调用栈信息,这些信息可以帮助我们来解决相关问题。
无论是我们自己搭建的框架还是直接使用各种第三方收集框架,我们拿到的方法栈调用信息通常都是一些符号,为了能够从这些符号中获取正确的方法名,我们需要在线上包对应的dSYM文件帮助下进行符号化,进而得到明确的方法名。
对于如何使用dSYM文件来解析符号,网上已经有了很多质量很好的教程,推荐其中一个教程。
对于目前已有的符号化方法,无论是 symbolicatecrash
还是 atos
,均需要配置 Xcode
环境,对于没有 Xcode
或 MacOS
环境的机器来说,符号化就变得毫无希望。
今天就来介绍一种无需特殊 Xcode
及 MacOS
环境即可解析iOS符号的方法。
二、前期准备
1. dSYM文件
为了解析符号,我们还是需要准备好对应的 dSYM
文件,毕竟 dSYM
文件中存储着程序中的符号信息。
2. dump_syms工具
dump_syms
工具是谷歌 Breakpad
项目中提供的一个工具,该工具可以将读取 dSYM
文件中的符号信息,并将这些信息导出为文本文件。
dump_syms
工具获取流程如下:
- 前往 https://github.com/google/breakpad 下载源码
- 进入 src/tools目录
- 根据平台进入对应目录
- 进入 dump_syms 目录,根据对应方法进行源码编译,生成 dump_syms 工具
3. 导出.sym文件
使用 dump_syms
工具导出 dSYM
文件中符号信息,命令如下: dump_syms [-a ARCHITECTURE] [dSYM path] > [output path]
,例如 dump_syms -a arm64 /Users/mademao/Desktop/SymbolDemo.app.dSYM/ > /Users/mademao/Desktop/arm64.sym
。
三、解析符号
对于如何解析符号,这里只介绍解析原理,具体可实现一个跨平台脚本,使用脚本来进行跨平台iOS符号解析。
1. .sym文件结构介绍
在上述步骤中导出的
这篇关于利用.sym跨平台解析iOS符号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!