iOS分析app崩溃日志
2022-03-02 本文已影响0人
东也_
简单记录一下(感谢袁兄提供帮助)
问题描述:有时崩溃日志的调用堆栈只会显示地址,根本看不懂。
解决思路:
可以通过xcode提供的命令行工具atos工具,结合项目打包时生成的dSYM文件和崩溃的两个地址,解析出具体的调用推荐信息,包括类名-方法名甚至代码行数;
来一张官网的图:

操作步骤:
1. 找到崩溃日志中找到对应的的信息,包括包名(每个SDK都有包名-app项目也会被当做一个SDK) 、第一地址、第二地址;
2. 通过第一地址,从binary images中找到对应的架构类型和包名;
3. 找到打包时生成的dSYM文件,存放路径如:/Users/xxx/Library/Developer/Xcode/Archives/2022-02-28/你的项目名称\ 2022-2-28\,\ 4.02\ PM.xcarchive/dSYMs,这下面会有很多个dSYM文件,找到对应的binary image name(包名);如果没有 需要在项目build setting中设置debug information format 为 dwarf with dsym file;
4. 使用命令atos -arch 架构类型 -o /Users/xxx/Library/Developer/Xcode/Archives/2022-02-28/你的项目名称\ 2022-2-28\,\ 4.02\ PM.xcarchive/dSYMs/包名.app.dSYM/Contents/Resources/DWARF/包名 -l 第一地址 第二地址
5. 最后可能生成类似于 `closure #2 in CloudClassCourseDetailVC.FWVodViewPlayFinish(_:isCount:isFinish:) + 9981160 (CloudClassCourseDetailVC.swift:1154)”;```