查看iOS崩溃日志

iOS开发经常会遇到崩溃的情况,许多上架的应用也会经常出现崩溃的情况,今天就来总结一下如何查看iOS奔溃日志。

先写一段让程序崩溃的代码。

- (IBAction)crash:(id)sender {
    NSArray *array = @[@1];
    NSLog(@"%@", array[1]);
}

在屏幕中加一个按钮,点击按钮程序崩溃。

Xcode 版本 9.2。
手机操作系统:iOS11.3,进入设置->隐私->分析->分析数据。里面包含了应用程序的崩溃日志。

想要查看日志里面的信息,需要三个东西。

  1. 崩溃日志文件
  2. Xcode自带的symbolicatecrash工具
  3. dSYM文件

使用真机可以导出日志文件,symbolicatecrash工具在/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources文件夹下。
dSYM文件在发布的应用程序包中,每一个发布版本都有一个dSYM文件。需要保存好这些dSYM文件。

将上面三个文件统一放在crash文件夹下。
打开终端程序,进入crash文件夹,输入下面的命令可以解析奔溃日志信息。

sfit-macmini-for-test:crash user$ pwd
/Users/user/Desktop/crash
sfit-macmini-for-test:crash user$ ./symbolicatecrash CrashDemo0809-2018-08-09-143458.ips CrashDemo0809.app.dSYM > out.crash
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
sfit-macmini-for-test:crash user$ export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
sfit-macmini-for-test:crash user$ ./symbolicatecrash CrashDemo0809-2018-08-09-143458.ips CrashDemo0809.app.dSYM > out.crash
sfit-macmini-for-test:crash user$ 

打开out.crash里面有导致程序崩溃的原因:

Last Exception Backtrace:
0   CoreFoundation                  0x182efad8c __exceptionPreprocess + 228
1   libobjc.A.dylib                 0x1820b45ec objc_exception_throw + 55
2   CoreFoundation                  0x182e93d80 -[__NSSingleObjectArrayI objectAtIndex:] + 127
3   CrashDemo0809                   0x104c06660 -[ViewController crash:] + 26208 (ViewController.m:19)
4   UIKit                           0x18cc2a6c8 -[UIApplication sendAction:to:from:forEvent:] + 95
5   UIKit                           0x18cd4b8a4 -[UIControl sendAction:to:forEvent:] + 79
6   UIKit                           0x18cc3077c -[UIControl _sendActionsForEvents:withEvent:] + 439
7   UIKit                           0x18cd661dc -[UIControl touchesEnded:withEvent:] + 571
8   UIKit                           0x18ccada48 -[UIWindow _sendTouchesForEvent:] + 2427
9   UIKit                           0x18cca28f8 -[UIWindow sendEvent:] + 3159
10  UIKit                           0x18cca1238 -[UIApplication sendEvent:] + 339

定位到了出错文件及位置:

3   CrashDemo0809                   0x104c06660 -[ViewController crash:] + 26208 (ViewController.m:19)

当手机连接Xcode进行测试时,可以直接查看崩溃信息。
具体方法打开 window->Devices & Simulators

真机测试.png

点击View Device Logs


查看Crash信息.png

有关dSYM文件,可以在Build Settings搜索dSYM进行设置。


dSYM设置.png

你可能感兴趣的:(查看iOS崩溃日志)