Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从通知中心启动应用程序时发生奇怪的崩溃_Ios_Objective C_Ios8 Today Widget - Fatal编程技术网

Ios 从通知中心启动应用程序时发生奇怪的崩溃

Ios 从通知中心启动应用程序时发生奇怪的崩溃,ios,objective-c,ios8-today-widget,Ios,Objective C,Ios8 Today Widget,我不知所措,我遇到了一个奇怪的崩溃,只有当应用程序从通知中心启动时才会发生。点击本地通知(在通知端)或调用extensionContext:openURL:completionHandler(从my Today小部件)将启动带有自定义URL方案的应用程序 当应用程序正在运行(热启动)时,没有问题,正如广告所宣传的那样工作。当我关闭应用程序(在任务切换器中),然后尝试通过通知中心(冷启动)启动它时,我会得到下面的崩溃报告 我到处找,什么都找不到。这只发生在iOS8设备上,iOS7设备没有问题(使用

我不知所措,我遇到了一个奇怪的崩溃,只有当应用程序从通知中心启动时才会发生。点击本地通知(在通知端)或调用extensionContext:openURL:completionHandler(从my Today小部件)将启动带有自定义URL方案的应用程序

当应用程序正在运行(热启动)时,没有问题,正如广告所宣传的那样工作。当我关闭应用程序(在任务切换器中),然后尝试通过通知中心(冷启动)启动它时,我会得到下面的崩溃报告

我到处找,什么都找不到。这只发生在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

您的代码或正在使用的第三方库正在手动旋转运行循环。这导致重新调用-workspacedindendtransaction:并在释放后触发使用。如果在-[nsrunlop runMode:beforeDate:]和-[nsrunlop runUntilDate:]上设置断点,则应在上一个堆栈帧上设置错误代码


虽然不建议手动旋转运行循环,但如果您可以延迟到应用程序启动完成(接收到所有启动应用程序代理调用)后再执行此操作,则应避免发生此崩溃。

您是否成功修复了@Mike?我在野外的几个应用程序中看到了同样的情况,但无法通过向应用程序发送推送通知在本地复制。我可以按照上述步骤一致地复制它。另一个有趣的事实是,它只有iOS8。我正在更新到v8.1,看看它是否得到了解决。我希望它已经得到了解决。我还没有在iOS 8.1的应用程序中看到过这种情况,但现在下结论还为时过早。希望您的测试能够确认。尝试推送通知,终止应用程序。然后点击通知中心的通知。我一直在这样做,但还没有成功复制它。我会坚持下去。不过,我现在在iOS8.1中遇到了这个崩溃,所以它在那里没有得到修复。@Dex提到的是正确的。我使用的是一个第三方库,它可以手动旋转运行循环。禁用该库修复了我的问题。从那以后,我还通知了库开发人员。@Mike,谢谢。我修正了我的密码。我在我的didLaunch应用程序方法中旋转runloop。删除该调用修复了crashesHey@Dex如何在-[nsrunlop运行模式:beforeDate:]上设置断点的问题?我也有同样的问题,如何调试?