从Notification Center启动应用程序时出现奇怪的崩溃

我在我的智慧结束,我得到一个奇怪的崩溃,只发生在通知中心启动应用程序时。 在本地通知(在通知方)或者对extensionContext的调用:openURL:completionHandler(来自我的“今日”小部件)将使用customURLscheme启动应用程序。

当应用程序运行(热启动),没有问题,工作就像广告。 当我杀死应用程序(在任务切换器),然后尝试通过通知中心启动它(冷启动),我得到下面的崩溃报告。

我寻找任何东西的低和高,找不到它。 这只发生在iOS8设备上,iOS7设备没有问题(随着通知启动,显然没有今日小部件)

有没有人看过这个?

谢谢!

Date/Time: 2014-10-14 18:16:39.924 -0400 Launch Time: 2014-10-14 18:16:38.667 -0400 OS Version: iOS 8.0.2 (12A405) Report Version: 105 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x000000016a4cbeb8 Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libobjc.A.dylib 0x0000000195ebbbd0 objc_msgSend + 16 1 UIKit 0x000000018a27d840 -[UIApplication workspaceDidEndTransaction:] + 216 2 FrontBoardServices 0x000000018da7563c __31-[FBSSerialQueue performAsync:]_block_invoke + 24 3 CoreFoundation 0x000000018582a35c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16 4 CoreFoundation 0x0000000185829464 __CFRunLoopDoBlocks + 308 5 CoreFoundation 0x0000000185827a88 __CFRunLoopRun + 1752 6 CoreFoundation 0x0000000185755660 CFRunLoopRunSpecific + 392 7 UIKit 0x000000018a05f4fc -[UIApplication _run] + 548 8 UIKit 0x000000018a05a4f4 UIApplicationMain + 1484 9 therichest 0x00000001001caa8c main (main.m:16) 10 libdyld.dylib 0x0000000196516a04 start + 0 

无论是您的代码或您正在使用的第三方库是手动旋转runloop。 这导致-workspaceDidEndTransaction:被重新调用,并在空闲后触发一个使用。 如果你在 – [NSRunLoop runMode:beforeDate:]和 – [NSRunLoop runUntilDate:]上设置了一个断点,那么它应该打在先前堆栈帧上的有罪代码上。

从不build议手动旋转运行循环,如果可以延迟执行,直到应用程序完成启动(所有启动应用程序委托调用都已收到),则应避免发生此故障。