我正在使用TestFlight分发测试版应用和Crashlytics以进行崩溃报告,但我收到的一些报告却毫无用处。堆栈跟踪不是显示有问题的代码行,而是显示如下内容:
-[__TFAppUpdater_Helper .cxx_destruct] + 28868
我在代码中注释掉了所有TestFlight SDK调用,但我仍在使用TestFlight进行分发。我可以通过Xcode在我自己的设备上安装应用程序,绕过TestFlight,然后Crashlytics为同一个崩溃生成一个有用的报告。我在网上看到很多证据表明TestFlight和Crashlytics应该玩得很好,但到目前为止我的经验还不是。
示例Crashlytics混淆了通过TestFlight安装的应用程序的堆栈跟踪(相关行用 - >表示):
Thread : Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x30709fd3 __exceptionPreprocess + 130
1 libobjc.A.dylib 0x3b1ecccf objc_exception_throw + 38
2 CoreData 0x3045f367 -[NSSQLGenerator newSQLStatementForFetchRequest:ignoreInheritance:countOnly:nestingLevel:] + 914
3 CoreData 0x3045ee97 -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] + 406
4 CoreData 0x3045eafd -[NSSQLCore newRowsForFetchPlan:] + 116
5 CoreData 0x3045e23d -[NSSQLCore objectsForFetchRequest:inContext:] + 696
6 CoreData 0x3045dceb -[NSSQLCore executeRequest:withContext:error:] + 446
7 CoreData 0x3045d59d -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 2892
8 CoreData 0x3045b99f -[NSManagedObjectContext executeFetchRequest:error:] + 614
9 CoreData 0x304e9d33 -[NSManagedObjectContext(_NestedContextSupport) _parentObjectsForFetchRequest:inContext:error:] + 398
10 CoreData 0x304ea4ab __82-[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:]_block_invoke + 562
11 libdispatch.dylib 0x3b6d481f _dispatch_client_callout + 22
12 libdispatch.dylib 0x3b6da7cb _dispatch_barrier_sync_f_invoke + 26
13 CoreData 0x304dfdf3 _perform + 102
14 CoreData 0x304ea1ad -[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:] + 240
15 CoreData 0x3045b99f -[NSManagedObjectContext executeFetchRequest:error:] + 614
16 CoreData 0x30474e49 -[NSFetchedResultsController performFetch:] + 524
-->17 Titís 0x00115925 -[__TFAppUpdater_Helper .cxx_destruct] + 28940
-->18 Titís 0x00114435 -[__TFAppUpdater_Helper .cxx_destruct] + 23580
19 UIKit 0x32f5b057 -[UIApplication sendAction:to:from:forEvent:] + 90
20 UIKit 0x32f5aff7 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
21 UIKit 0x32f5afd1 -[UIControl sendAction:to:forEvent:] + 44
22 UIKit 0x32f46737 -[UIControl _sendActionsForEvents:withEvent:] + 374
-->23 Titís 0x0011e599 -[__TFAppUpdater_Helper .cxx_destruct] + 64896
24 UIKit 0x33198cc5 -[UIPickerView _sendSelectionChangedForComponent:notify:] + 92
25 UIKit 0x333ef4f7 -[UIPickerTableView _scrollingFinished] + 154
26 UIKit 0x330c1977 -[UIScrollView(UIScrollViewInternal) _stopScrollDecelerationNotify:] + 806
27 UIKit 0x32ff7d67 -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 466
28 UIKit 0x32ff7b8b -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:] + 30
29 UIKit 0x330c123b -[UIScrollView _smoothScrollWithUpdateTime:] + 3322
30 QuartzCore 0x32bf1df3 CA::Display::DisplayLinkItem::dispatch() + 98
31 QuartzCore 0x32bf1b9d CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 344
32 IOMobileFramebuffer 0x3595f75d IOMobileFramebufferVsyncNotifyFunc + 104
33 IOKit 0x313f4451 IODispatchCalloutFromCFMessage + 248
34 CoreFoundation 0x306c9ef9 __CFMachPortPerform + 136
35 CoreFoundation 0x306d4ab7 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
36 CoreFoundation 0x306d4a53 __CFRunLoopDoSource1 + 346
37 CoreFoundation 0x306d3227 __CFRunLoopRun + 1398
38 CoreFoundation 0x3063df4f CFRunLoopRunSpecific + 522
39 CoreFoundation 0x3063dd33 CFRunLoopRunInMode + 106
40 GraphicsServices 0x35537663 GSEventRunModal + 138
41 UIKit 0x32f8916d UIApplicationMain + 1136
-->42 Titís 0x000ee657 main (main.m:16)
43 libdyld.dylib 0x3b6f9ab7 start + 2
示例Crashlytics有用的堆栈跟踪来自通过Xcode安装的应用程序(相关行用 - >表示):
Thread : Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x30709fd3 __exceptionPreprocess + 130
1 libobjc.A.dylib 0x3b1ecccf objc_exception_throw + 38
2 CoreData 0x3045f367 -[NSSQLGenerator newSQLStatementForFetchRequest:ignoreInheritance:countOnly:nestingLevel:] + 914
3 CoreData 0x3045ee97 -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] + 406
4 CoreData 0x3045eafd -[NSSQLCore newRowsForFetchPlan:] + 116
5 CoreData 0x3045e23d -[NSSQLCore objectsForFetchRequest:inContext:] + 696
6 CoreData 0x3045dceb -[NSSQLCore executeRequest:withContext:error:] + 446
7 CoreData 0x3045d59d -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 2892
8 CoreData 0x3045b99f -[NSManagedObjectContext executeFetchRequest:error:] + 614
9 CoreData 0x304e9d33 -[NSManagedObjectContext(_NestedContextSupport) _parentObjectsForFetchRequest:inContext:error:] + 398
10 CoreData 0x304ea4ab __82-[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:]_block_invoke + 562
11 libdispatch.dylib 0x3b6d481f _dispatch_client_callout + 22
12 libdispatch.dylib 0x3b6da7cb _dispatch_barrier_sync_f_invoke + 26
13 CoreData 0x304dfdf3 _perform + 102
14 CoreData 0x304ea1ad -[NSManagedObjectContext(_NestedContextSupport) executeRequest:withContext:error:] + 240
15 CoreData 0x3045b99f -[NSManagedObjectContext executeFetchRequest:error:] + 614
16 CoreData 0x30474e49 -[NSFetchedResultsController performFetch:] + 524
-->17 Titís 0x000e983d -[EntityListCell initFetchedResults] (EntityListCell.m:242)
-->18 Titís 0x000e834d -[EntityListCell sortPickerChanged:] (EntityListCell.m:79)
19 UIKit 0x32f5b057 -[UIApplication sendAction:to:from:forEvent:] + 90
20 UIKit 0x32f5aff7 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
21 UIKit 0x32f5afd1 -[UIControl sendAction:to:forEvent:] + 44
22 UIKit 0x32f46737 -[UIControl _sendActionsForEvents:withEvent:] + 374
-->23 Titís 0x000f24b1 -[ObjectPicker pickerView:didSelectRow:inComponent:] (ObjectPicker.m:173)
24 UIKit 0x33198cc5 -[UIPickerView _sendSelectionChangedForComponent:notify:] + 92
25 UIKit 0x333ef4f7 -[UIPickerTableView _scrollingFinished] + 154
26 UIKit 0x330c1977 -[UIScrollView(UIScrollViewInternal) _stopScrollDecelerationNotify:] + 806
27 UIKit 0x32ff7d67 -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 466
28 UIKit 0x32ff7b8b -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:] + 30
29 UIKit 0x330c123b -[UIScrollView _smoothScrollWithUpdateTime:] + 3322
30 QuartzCore 0x32bf1df3 CA::Display::DisplayLinkItem::dispatch() + 98
31 QuartzCore 0x32bf1b9d CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 344
32 IOMobileFramebuffer 0x3595f75d IOMobileFramebufferVsyncNotifyFunc + 104
33 IOKit 0x313f4451 IODispatchCalloutFromCFMessage + 248
34 CoreFoundation 0x306c9ef9 __CFMachPortPerform + 136
35 CoreFoundation 0x306d4ab7 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
36 CoreFoundation 0x306d4a53 __CFRunLoopDoSource1 + 346
37 CoreFoundation 0x306d3227 __CFRunLoopRun + 1398
38 CoreFoundation 0x3063df4f CFRunLoopRunSpecific + 522
39 CoreFoundation 0x3063dd33 CFRunLoopRunInMode + 106
40 GraphicsServices 0x35537663 GSEventRunModal + 138
41 UIKit 0x32f8916d UIApplicationMain + 1136
-->42 Titís 0x000b80ad main (main.m:16)
43 libdyld.dylib 0x3b6f9ab7 start + 2
答案 0 :(得分:0)
前几天我的项目遇到了同样的问题,发现本教程解决了问题(通过禁用testflight'崩溃处理程序)
http://www.grahamdennis.me/blog/2012/10/21/how-to-disable-testflights-crash-handlers/
答案 1 :(得分:0)
正如所建议的,这被证明是一个符号问题,并且更改Xcode中的构建设置修复了它。虽然我没有使用他们的平台,但我在HockeyApp documentation:
中找到了解决方案对于静态库,构建设置包含以下内容:
复制期间剥离调试符号:否
剥离样式:调试 符号
剥离链接产品:否对于应用程序目标或OS X框架,构建设置应该 包含以下版本(App Store)构建配置:
复制期间剥离调试符号:是
条形样式:所有符号
剥离链接产品:是