iosios6crash-reportsipad-mini

How do I debug this crash in UIDictationController?


Recently I am trying to debug with the information provided by Crash Reports. So far I have been able to identify and fix some bugs but not this one.

As I read from the crash report, it's something wrong with UIDictationController, but my code did not call UIDictationController at all. The crash report is generated by PLCrashReporter.

It seems that the user is using an iPad Mini (WiFi) and running iOS 6.0.2.

Incident Identifier: [REMOVED]
CrashReporter Key:   [REMOVED]
Hardware Model:      iPad2,5
Process:         MyApp [2849]
Path:            [REMOVED]
Identifier:      com.yourcompany.MyApp
Version:         1.1
Code Type:       ARM
Parent Process:  launchd [1]

Date/Time:       2013-01-26 02:11:01 +0000
OS Version:      iPhone OS 6.0.2 (10A550)
Report Version:  104

Exception Type:  SIGABRT
Exception Codes: #0 at 0x32255350
Crashed Thread:  0

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil'

Last Exception Backtrace:
0   CoreFoundation                      0x3882e2a3 __exceptionPreprocess + 163
1   libobjc.A.dylib                     0x30d8897f objc_exception_throw + 31
2   CoreFoundation                      0x387788d9 -[__NSArrayM insertObject:atIndex:] + 769
3   UIKit                               0x36ad24c3 -[UIDictationMeterView initWithFrame:] + 267
4   UIKit                               0x36abe699 -[UIDictationView initWithFrame:] + 281
5   UIKit                               0x36abdcd1 +[UIDictationView sharedInstance] + 145
6   UIKit                               0x36aae7f5 -[UIDictationController setState:] + 149
7   UIKit                               0x36aaef5f -[UIDictationController setupForDictationStart] + 199
8   UIKit                               0x36aae5d7 -[UIDictationController startConnectionForReason:] + 51
9   UIKit                               0x36aaf173 -[UIDictationController startDictationFromLayout] + 55
10  UIKit                               0x36825c09 -[UIKeyboardLayoutStar touchUp:] + 5249
11  UIKit                               0x3682472f -[UIKeyboardLayout touchesEnded:withEvent:] + 387
12  UIKit                               0x3670c5f1 -[UIWindow _sendTouchesForEvent:] + 525
13  UIKit                               0x366f9801 -[UIApplication sendEvent:] + 381
14  UIKit                               0x366f911b _UIApplicationHandleEvent + 6155
15  GraphicsServices                    0x3771e5a3 _PurpleEventCallback + 591
16  GraphicsServices                    0x3771e1d3 PurpleEventCallback + 35
17  CoreFoundation                      0x38803173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35
18  CoreFoundation                      0x38803117 __CFRunLoopDoSource1 + 139
19  CoreFoundation                      0x38801f99 __CFRunLoopRun + 1385
20  CoreFoundation                      0x38774ebd CFRunLoopRunSpecific + 357
21  CoreFoundation                      0x38774d49 CFRunLoopRunInMode + 105
22  GraphicsServices                    0x3771d2eb GSEventRunModal + 75
23  UIKit                               0x3674d2f9 UIApplicationMain + 1121
24  MyApp                               0x000032e1 main (main.m:36)
25  MyApp                               0x00003230 start + 40


Thread 0 Crashed:
0   libsystem_kernel.dylib              0x30f10350 __pthread_kill + 8
1   libsystem_c.dylib                   0x304f8973 abort + 95
2   MyApp                               0x000e954f uncaught_exception_handler + 27
3   CoreFoundation                      0x3882e57f __handleUncaughtException + 615
4   libobjc.A.dylib                     0x30d88a65 _objc_terminate() + 129
5   libc++abi.dylib                     0x3719807b safe_handler_caller(void (*)()) + 79
6   libc++abi.dylib                     0x37198114 std::terminate() + 20
7   libc++abi.dylib                     0x37199599 __cxa_current_exception_type + 1
8   libobjc.A.dylib                     0x30d889d1 objc_exception_rethrow + 13
9   CoreFoundation                      0x38774f21 CFRunLoopRunSpecific + 457
10  CoreFoundation                      0x38774d49 CFRunLoopRunInMode + 105
11  GraphicsServices                    0x3771d2eb GSEventRunModal + 75
12  UIKit                               0x3674d2f9 UIApplicationMain + 1121
13  MyApp                               0x000032e1 main (main.m:36)

Is there any way that I can do with this bug? Or, at least mitigating the issue? Thanks in advance.


Solution

  • the problem is that somewhere in your app you have a keyboard come up and with iOS version 6.0.1 and 6.0.2, apple enabled the dictation controller even if you didn't specify it to be enabled. Two solutions to fixing it: create a custom keyboard without it or implement dictation in your app.

    My suggestion is to just let it be, only affects two outdate iOS versions and hopefully the crashes will go away as the users upgrade their devices