iOS Crash: symbolicatecrash 工具

iOS 开发中, 我们经常会遇到 crash 的问题.

在开发阶段, crash 很容易排查和解决.但是到了用户手中, 就没那么简单了.

当然, 现在很多第三方的 SDK 有 crash 分析的功能, 我们可以直接集成到我们的项目当中来.

~~大家可以到网上 soso.

但是, 我们还是有必要知道更多 crash 的知识, 不然, 哪天让你开发一个 crash 日志系统, 你就会蒙逼了!

在 iOS crash 系列博客中, 我会结合工作实例, 跟大家一起来探索和分析 crash 的种种...


今天跟大家来道小菜, 希望你会喜欢.


symbolicatecrash 工具是 xcode 自带(也可以说是集成)的.

其实是一个 perl 脚本.

可以通过下面两步, 来查找该工具的具体位置

cd
find /Applications -name symbolicatecrash

找到位置在

/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash


关于其具体使用可以查看帮助, 如下


下面举一个具体的例子, 说明其用法, 算是抛砖引玉吧.

1. xcode 新建一个工程, 或者使用已有的工程, 这里暂命名为 dsds

2. 工程设置 debug 下产生 dsym 文件

进入 Build Settings, 如图


3. 加入 crash 代码

在某个 ViewController 里面加入如下代码

- (void)viewDidLoad {
    [super viewDidLoad];
    
    id s = @"";
    NSString *stp = [s stringValue];
    NSLog(@"stp = %@", stp);
}


4. 运行工程到真机

5. 启动进入该 ViewController, crash

6. 导出手机里面的 crash log

* xcode/window/devices

* 在弹出的界面中, 选择 view device logs



右键 Export log 命名为 dsds.crash, 保存到 Desktop/crash_file 目录.


-- 小插曲

细心的你, 或许已经发现, 这里已经解析处理 crash 的位置和详情了. 

为了说明工具的使用, 我建议你还是继续看下面的内容.

-- 您继续---


7 . 找到 dsym 文件和 app

* xcode 中选择 Products/dsds.app/show in finder, 如图


* 复制文件到Desktop/crash_file 目录



8. 复制symbolicatecrash工具到上述目录

那么一切看起来是这样的


9. 设置坏境变量

export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"


10. 分析 crash 文件

cd ~/Desktop/crash_file

./symbolicatecrash ./dsds.crash ./dsds.app.dSYM > dsds_symbol.crash

那么现在看起来是这样的

使用 console 打开 dsds_symbol.crash 文件

清楚的看到在 ViewController 的 第27 行 crash 了.

参考:

* http://www.jianshu.com/p/744b5062d5fe

* http://wonderffee.github.io/blog/2013/08/14/dont-use-symbolicatecrash-to-symbolicate-the-crash-log/


©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页