8

我今天收到了 Crashlytics 的崩溃报告,但无法弄清楚问题所在。我的应用程序已经运行了几个月没有问题,所以这似乎是一次性的。

崩溃是Exception Type EXC_BREAKPOINT Code UNKNOWN at 0xdefe

1    UIKit   _shadowImageInRectForSlice + 258
2    UIKit   _shadowImageInRectForSlice + 258
3    UIKit   -[UIActionSheet(Private) layout] + 3586
4    UIKit   -[UIActionSheet(Private) presentSheetInView:] + 268
5    myapp   GraphViewController.m line 135
             -[GraphViewController graphButtonPressed:] + 135
6    UIKit   -[UIApplication sendAction:to:from:forEvent:] + 72
7    UIKit   -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 120
8    UIKit   -[UIApplication sendAction:to:from:forEvent:] + 72
9    UIKit  -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
10   UIKit  -[UIControl sendAction:to:forEvent:] + 44
11   UIKit  -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 502
12   UIKit  -[UIControl touchesEnded:withEvent:] + 488
13   UIKit  -[UIWindow _sendTouchesForEvent:] + 524
14   UIKit  -[UIApplication sendEvent:] + 380
15   UIKit  _UIApplicationHandleEvent + 6154
16   GraphicsServices   _PurpleEventCallback + 590
17   GraphicsServices   PurpleEventCallback + 34
18   CoreFoundation     __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
19   CoreFoundation     __CFRunLoopDoSource1 + 138
20   CoreFoundation     __CFRunLoopRun + 1384
21   CoreFoundation     CFRunLoopRunSpecific + 356
22   CoreFoundation     CFRunLoopRunInMode + 104
23   GraphicsServices   GSEventRunModal + 74
24   UIKit  UIApplicationMain + 1120
25   myapp   main.m line 16
             main + 16

现在 ViewController 的第 135 行它只是[actionSheet showInView:self.view];用于UIActionSheet

崩溃发生在 iPad2.5(不确定是哪个型号)上,但我的应用程序仅适用于 iPhone,因此会被窗口化。和 iOS 6.1

需要注意的另一件事是该设备已越狱。这会导致崩溃吗?我知道他们可以安装任何类型的插件来操作视图。

- - - - - 额外的 - - - - -

在写这篇文章时,我收到了第二份崩溃报告,它似乎来自不同的用户,因为这次是 iPhone4.1 上的 iOS 5.1.1。这款手机也被越狱了。

Exception Type EXC_BAD_ACCESS Code KERN_INVALID_ADDRESS at 0x4003109b

0    libobjc.A.dylib     objc_msgSend + 15
1    UIKit   -[UIActionSheet(Private) _buttonClicked:] + 250
2    CoreFoundation  -[NSObject performSelector:withObject:withObject:] + 52
3    UIKit   -[UIApplication sendAction:to:from:forEvent:] + 62
4    UIKit   -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
5    UIKit   -[UIControl sendAction:to:forEvent:] + 44
6    UIKit   -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 492
7    UIKit   -[UIControl touchesEnded:withEvent:] + 476
8    UIKit   -[UIWindow _sendTouchesForEvent:] + 318
9    UIKit   -[UIWindow sendEvent:] + 380
10   UIKit   -[UIApplication sendEvent:] + 356
11   UIKit   _UIApplicationHandleEvent + 5826
12   GraphicsServices    PurpleEventCallback + 882
13   CoreFoundation  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 38
14   CoreFoundation  __CFRunLoopDoSource1 + 140
15   CoreFoundation  __CFRunLoopRun + 1370
16   CoreFoundation  CFRunLoopRunSpecific + 300
17   CoreFoundation  CFRunLoopRunInMode + 104
18   GraphicsServices    GSEventRunModal + 136
19   UIKit   UIApplicationMain + 1080
20   myapp  main.m line 16
            main + 16

这个甚至没有显示ViewController导致崩溃的原因!

请问有什么想法吗?

4

1 回答 1

9

请注意,这种东西很难调试,尤其是在没有代码和除此崩溃日志之外的任何其他上下文的情况下。我会尝试给出一些指示/我会做的事情。

iPad 2,5的第一个似乎是 iPad mini WiFi,但我对此并不完全确定。因此,在 iPad mini 上测试您的应用程序(也在装有 iOS 5.1.1 的设备上测试),看看会发生什么,专注于UIActionSheet您使用的实例并开始在GraphViewController. 确保您能想到的所有情况都能正常工作。

如果可行,并且这些是您仅有的 2 个崩溃报告:不要惊慌!我不知道您的应用程序有多少用户,但其中只有 2 个用户发生过一次崩溃。你说他们可能越狱了他们的设备,他们知道应用程序可能会因此而崩溃。

考虑到这一点,决定是否值得花时间和精力来解决这个问题。

UIActionSheet如果是,您可以查看在使用实例期间可以释放的对象或块,EXC_BAD_ACCESS基本上是说“天哪,我们必须使用的对象不见​​了!”。

EXC_BREAKPOINT大多数时候告诉您您正在引用一个不存在的符号或框架。这可能是因为手机已越狱,或者因为您说您的应用程序与 iOS 版本 X 兼容,但您使用的框架/方法仅在更新版本中可用。所以也检查一下。

我希望通过这种方式,您可以找到一些可疑代码,并能够将其发布到 StackOverflow 上,或者您可以自己解决问题。

希望这能在正确的方向上提供一点帮助,但是,再一次,只有没有代码或进行一些测试的能力的崩溃报告并没有多大意义......

于 2013-02-10T11:03:11.040 回答