今天的程序直接运行在手机上不会有问题,但是打包安装就会有问题,直接崩溃了,然后发现自己竟然不会查看崩溃日志,
因为手机就在手边,所以直接在xcode中 window-devices找到连接的手机,view device logs即可查看设备的日志,选择相关的app 导出就可以,
然后系统的类可能直接显示方法名和行了,但是自己的类却不显示,这时需要用到符号化表 .dSYM
首先需要使用到 symbolicatecrash 在不同的xcode版本中位置好像是不一样的,最靠谱的方法是
$ find /Applications/Xcode.app -name symbolicatecrash -type f
看别人家文章基本都是在DTDevice下,但是xcode7.3中已经放到了
/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash
可以把这个文件直接拷贝放到一个文件夹,
然后还有一开始导出的那个.crash 文件,还有打包时获取的.dSYM文件一并放入这个文件夹
然后执行
$ ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
这样会生成一个新的.crash文件.
有可能会报错误,需要运行
$ export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"
就可以了,再次执行,然后所创建的文件夹下就会有一个有内容的新的.crash文件
然后就能具体定位问题了
发一个前后对比图
好吧 图发不出来
------------------------------前------------------------------
Last Exception Backtrace:
0 CoreFoundation 0x25bf22e6 __exceptionPreprocess + 122
1 libobjc.A.dylib 0x253bedfa objc_exception_throw + 34
2 CoreFoundation 0x25bf222c +[NSException raise:format:] + 108
3 QuartzCore 0x27e58e36 CA::Layer::set_position(CA::Vec2<double> const&, bool) + 238
4 QuartzCore 0x27e58d3e -[CALayer setPosition:] + 50
5 QuartzCore 0x27e58cdc -[CALayer setFrame:] + 484
6 UIKit 0x29d82480 -[UIView(Geometry) setFrame:] + 252
7 UIKit 0x29d97ad8 -[UIImageView _setViewGeometry:forMetric:] + 176
8 UIKit 0x29d97a1e -[UIImageView setFrame:] + 34
9 CoreFoundation 0x25bf6cc0 __invoking___ + 64
10 CoreFoundation 0x25b212a8 -[NSInvocation invoke] + 288
11 app 0x000fed34 0x18000 + 945460
12 Foundation 0x2636c2dc NSKVONotify + 48
13 Foundation 0x2636c210 -[NSKeyValueObservance observeValueForKeyPath:ofObject:change:context:] + 408
14 Foundation 0x2636c2dc NSKVONotify + 48
15 Foundation 0x2634b526 NSKeyValueNotifyObserver + 282
16 Foundation 0x2634b17e NSKeyValueDidChange + 342
17 Foundation 0x2634a64c -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 432
18 Foundation 0x2636b28c _NSSetObjectValueAndNotify + 220
19 app 0x000fcdfc 0x18000 + 937468
20 app 0x00100864 0x18000 + 952420
21 Foundation 0x2640f4d8 __NSFireTimer + 60
22 CoreFoundation 0x25bb59e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 10
23 CoreFoundation 0x25bb5614 __CFRunLoopDoTimer + 932
24 CoreFoundation 0x25bb3460 __CFRunLoopRun + 1496
25 CoreFoundation 0x25b05bb4 CFRunLoopRunSpecific + 512
26 CoreFoundation 0x25b059a8 CFRunLoopRunInMode + 104
27 GraphicsServices 0x26d7faf4 GSEventRunModal + 156
28 UIKit 0x29df1fb0 UIApplicationMain + 140
29 app 0x0017eb02 0x18000 + 1469186
30 libdyld.dylib 0x257b886e tlv_get_addr + 42
------------------------------后------------------------------
Last Exception Backtrace:
0 CoreFoundation 0x25bf22e6 __exceptionPreprocess + 122
1 libobjc.A.dylib 0x253bedfa objc_exception_throw + 34
2 CoreFoundation 0x25bf222c +[NSException raise:format:] + 108
3 QuartzCore 0x27e58e36 CA::Layer::set_position(CA::Vec2<double> const&, bool) + 238
4 QuartzCore 0x27e58d3e -[CALayer setPosition:] + 50
5 QuartzCore 0x27e58cdc -[CALayer setFrame:] + 484
6 UIKit 0x29d82480 -[UIView(Geometry) setFrame:] + 252
7 UIKit 0x29d97ad8 -[UIImageView _setViewGeometry:forMetric:] + 176
8 UIKit 0x29d97a1e -[UIImageView setFrame:] + 34
9 CoreFoundation 0x25bf6cc0 __invoking___ + 64
10 CoreFoundation 0x25b212a8 -[NSInvocation invoke] + 288
11 app 0x000fed34 -[PRTween observeValueForKeyPath:ofObject:change:context:] (PRTween.m:400)
12 Foundation 0x2636c2dc NSKVONotify + 48
13 Foundation 0x2636c210 -[NSKeyValueObservance observeValueForKeyPath:ofObject:change:context:] + 408
14 Foundation 0x2636c2dc NSKVONotify + 48
15 Foundation 0x2634b526 NSKeyValueNotifyObserver + 282
16 Foundation 0x2634b17e NSKeyValueDidChange + 342
17 Foundation 0x2634a64c -[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 432
18 Foundation 0x2636b28c _NSSetObjectValueAndNotify + 220
19 app 0x000fcdfc -[PRTweenCGRectLerpPeriod setProgress:] (PRTween.m:96)
20 app 0x00100864 -[PRTween update] (PRTween.m:657)
21 Foundation 0x2640f4d8 __NSFireTimer + 60
22 CoreFoundation 0x25bb59e2 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 10
23 CoreFoundation 0x25bb5614 __CFRunLoopDoTimer + 932
24 CoreFoundation 0x25bb3460 __CFRunLoopRun + 1496
25 CoreFoundation 0x25b05bb4 CFRunLoopRunSpecific + 512
26 CoreFoundation 0x25b059a8 CFRunLoopRunInMode + 104
27 GraphicsServices 0x26d7faf4 GSEventRunModal + 156
28 UIKit 0x29df1fb0 UIApplicationMain + 140
29 app 0x0017eb02 main (main.m:14)
30 libdyld.dylib 0x257b886e tlv_get_addr + 42