iOS/MacOS手动还原Crash 符号表
iOS/MacOS手动还原Crash 符号表
-
创建一个单独的文件夹,并进入文件夹目录;
-
导出
symbolicatecrash
可执行文件:
// 执行下面这句命令后,可打印出多个对应文件路径,选择其中一个对应平台的即可
find /Applications/Xcode.app -name symbolicatecrash -type f
// 再执行如下命令(就是把symbolicatecrash文件拷贝到当前目录下)
cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash ./
-
把对应的
.dSYM
,.app
,.crash
,symbolicatecrash
放同一目录(就第一步创建的那个文件目录下);dSYM文件:在 xcode 打包的时候生成的,此文件与.app 一定要是一起编译出来的,否则还原不了。每改次代码 dSYM 文件都会跟着代码变的,具体的自行搜索了解下。
-
设置环境变量(为了方便也可以把这个环境变量直接加到你的 shell 脚本中,就省去了每次临时设置这个):
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
- 还原符号表并导出崩溃日志:
// plCrashReporter.crashlog与.dSYM 都换成你的对应日志文件名,最后app.log为导出文件名
./symbolicatecrash plCrashReporter.crashlog xxxx.dSYM > app.log
-
还原前后对比:
-
还原单行符号:
➜ DebugTool atos -o "/Users/***/Library/Developer/Xcode/DerivedData/AirBrush_Studio-cdjktcizyjzkvygdwgsdszjtrfnu/Build/Products/Debug/AirBrush Studio.app/Contents/MacOS/AirBrush Studio" -arch x86_64 -l 0x106136000 0x00000001067b78ee
closure #1 in (in AirBrush Studio) (main.swift:13)
➜ DebugTool
// 0x106136000 是bundle的内在地址(在崩溃日志中的Binary Images中找到
// 0x00000001067b78ee 是你要还原的对应行符号地址,例如 38 com.pixocial.airbrushstudio 0x00000001067b78ee closure #1 in + 254
作者:Bravo Yeung
出处:http://www.cnblogs.com/nenhall/
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。
出处:http://www.cnblogs.com/nenhall/
如果您觉得阅读本文对您有帮助,请点击一下右下方的推荐按钮,您的推荐将是我写作的最大动力!
版权声明:本文为博主原创或转载文章,欢迎转载,但转载文章之后必须在文章页面明显位置注明出处,否则保留追究法律责任的权利。