因项目中碰到一个符号表使用Xcode12打包出来的framework给到另外一个团队,另外一个团队(不在一个职场)用Xcode 11.3进行打包集成出现了符号表解析不了的问题.(虽然最终是通过Xcode11.5 或11.2)打包framework成功了。
!!!注意后面测试过用哪个版本Archive的就只能同时用该版本。
(比如用Xcode11.2Archive的,但是后面的操作用Xcode12进行会失败)
但是也有必要记录下符号表的解析的问题。
1、制造崩溃
制造一个方法未实现的崩溃2、拿到符号表(.DSYM)
Archive之后可以右击Show in Finder
拿到DSYM文件
DSYM路径
3、安装ipa并复现崩溃
在第二步中导出ipa,用Xcode中的Window
->Devices and Simulators
快速安装ipa包
安装完成打开APP,APP闪退
4、拉取系统崩溃日志信息文件(.crash)
系统崩溃日志位于(我的手机iOS13.7,不同系统可能有差异,但大同小异)设置
->隐私
->分析与改进
->分析数据
找到崩溃的日志信息(.ips)导出到电脑中,并将后缀名改为.crash。
5、symbolicatecrash工具
打开终端,输入find /Applications/Xcode11.2.app -name symbolicatecrash -type f
(我这边是用Xcode11.2编译的)获取列表,然后复制含有DVTFoundation的路径,然后前往文件夹copy出来,把这三个文件放在同一个文件夹
6、合成symbol.crash文件
cd到文件夹,执行./symbolicatecrash ./Lingkabao-2020-12-05-100602.crash ./Lingkabao.app.dSYM/ > symbol.crash
如果出现
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
则先执行
export DEVELOPER_DIR=/Applications/XCode11.2.app/Contents/Developer
再执行
./symbolicatecrash ./Lingkabao-2020-12-05-100602.crash ./Lingkabao.app.dSYM/ > symbol.crash
通过后文件夹就会出现一份symbol.crash文件,里面就是你想要的了
image.png
右击.crash文件,选择使用Xcode11.2打开(因我本地有两个Xcode版本,使用Xcode11.2才行,否则找不到崩溃堆栈)选择自己的项目点击Open
选择自己的项目
最终效果
网友评论