iOS Today Extension 中奇怪的 NSInternalInconsistencyException 和 PKService 崩溃
Strange NSInternalInconsistencyException and PKService crash in iOS Today Extension
我在我的 iOS Today Extension 上安装了 Crashlytics,但我遇到了这个奇怪的崩溃。有谁知道为什么会这样?
Fatal Exception: NSInternalInconsistencyException
removing inactive plug-in com.somecompany.someapp.TodayExtension(1.0)>
崩溃的行是
11 PlugInKit -[PKService unregisterPersonality:] + 188
在我今天的扩展中,在 viewDidLoad 中,它将获取用户的当前位置,然后发出网络请求以获取有关该位置的数据。发生这种情况是因为我的操作花费的时间太长并且 iOS 正在终止我的扩展吗?我无法重现这一点,但我认为用户看到的是一个空白 space 扩展名应该在的地方,或者除了扩展名的标题外什么都没有显示。
Thread : Fatal Exception: NSInternalInconsistencyException
0 CoreFoundation 0x0000000181cc2530 __exceptionPreprocess + 132
1 libobjc.A.dylib 0x0000000192c980e4 objc_exception_throw + 60
2 CoreFoundation 0x0000000181cc23f0 +[NSException raise:format:]
3 Foundation 0x0000000182b6dc34 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
4 PlugInKit 0x000000018d1c04a0 __35-[PKService unregisterPersonality:]_block_invoke + 488
5 libdispatch.dylib 0x00000001932e9954 _dispatch_client_callout + 16
6 libdispatch.dylib 0x00000001932f31e4 _dispatch_barrier_sync_f_invoke + 76
7 PlugInKit 0x000000018d1c024c -[PKService unregisterPersonality:] + 188
8 PlugInKit 0x000000018d1bdfec -[PKServicePersonality shutdownPlugIn] + 108
9 CoreFoundation 0x0000000181cc8350 __invoking___ + 144
10 CoreFoundation 0x0000000181bc621c -[NSInvocation invoke] + 296
11 Foundation 0x0000000182c9d33c __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT__ + 24
12 Foundation 0x0000000182b4b8c8 -[NSXPCConnection _decodeAndInvokeMessageWithData:] + 1604
13 Foundation 0x0000000182accbd4 message_handler + 708
14 libxpc.dylib 0x00000001934f0c78 _xpc_connection_call_event_handler + 68
15 libxpc.dylib 0x00000001934eeb7c _xpc_connection_mach_event + 2160
16 libdispatch.dylib 0x00000001932e9a28 _dispatch_client_callout4 + 16
17 libdispatch.dylib 0x00000001932ed140 _dispatch_mach_msg_invoke + 492
18 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008
19 libdispatch.dylib 0x00000001932ec668 _dispatch_mach_invoke + 136
20 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008
21 libdispatch.dylib 0x00000001932eca5c _dispatch_queue_invoke + 132
22 libdispatch.dylib 0x00000001932f6318 _dispatch_root_queue_drain + 720
23 libdispatch.dylib 0x00000001932f7c4c _dispatch_worker_thread3 + 108
24 libsystem_pthread.dylib 0x00000001934c922c _pthread_wqthread + 816
25 libsystem_pthread.dylib 0x00000001934c8ef0 start_wqthread + 4
Thread : Crashed: service sync
0 libsystem_kernel.dylib 0x000000019342f270 __pthread_kill + 8
1 libsystem_pthread.dylib 0x00000001934cd170 pthread_kill + 112
2 libsystem_c.dylib 0x00000001933a6b18 abort + 112
3 libc++abi.dylib 0x0000000192465418 __cxa_bad_cast
4 libc++abi.dylib 0x0000000192484b8c default_unexpected_handler()
5 libobjc.A.dylib 0x0000000192c983c0 _objc_terminate() + 128
6 libc++abi.dylib 0x0000000192481bb4 std::__terminate(void (*)()) + 16
7 libc++abi.dylib 0x0000000192481c24 std::terminate() + 64
8 libobjc.A.dylib 0x0000000192c98318 _destroyAltHandlerList
9 libdispatch.dylib 0x00000001932e9968 _dispatch_client_callout + 36
10 libdispatch.dylib 0x00000001932f31e4 _dispatch_barrier_sync_f_invoke + 76
11 PlugInKit 0x000000018d1c024c -[PKService unregisterPersonality:] + 188
12 PlugInKit 0x000000018d1bdfec -[PKServicePersonality shutdownPlugIn] + 108
13 CoreFoundation 0x0000000181cc8350 __invoking___ + 144
14 CoreFoundation 0x0000000181bc621c -[NSInvocation invoke] + 296
15 Foundation 0x0000000182c9d33c __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT__ + 24
16 Foundation 0x0000000182b4b8c8 -[NSXPCConnection _decodeAndInvokeMessageWithData:] + 1604
17 Foundation 0x0000000182accbd4 message_handler + 708
18 libxpc.dylib 0x00000001934f0c78 _xpc_connection_call_event_handler + 68
19 libxpc.dylib 0x00000001934eeb7c _xpc_connection_mach_event + 2160
20 libdispatch.dylib 0x00000001932e9a28 _dispatch_client_callout4 + 16
21 libdispatch.dylib 0x00000001932ed140 _dispatch_mach_msg_invoke + 492
22 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008
23 libdispatch.dylib 0x00000001932ec668 _dispatch_mach_invoke + 136
24 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008
25 libdispatch.dylib 0x00000001932eca5c _dispatch_queue_invoke + 132
26 libdispatch.dylib 0x00000001932f6318 _dispatch_root_queue_drain + 720
27 libdispatch.dylib 0x00000001932f7c4c _dispatch_worker_thread3 + 108
28 libsystem_pthread.dylib 0x00000001934c922c _pthread_wqthread + 816
我的主线程(虽然没有在这里崩溃):
Thread : com.apple.main-thread
0 TodayExtension 0x00000001000ae370 -[TodayViewController normalView] (TodayViewController.m:32)
1 TodayExtension 0x00000001000adf58 __36-[TodayViewController showErrorView]_block_invoke (TodayViewController.m:173)
2 libdispatch.dylib 0x00000001932e9994 _dispatch_call_block_and_release + 24
3 libdispatch.dylib 0x00000001932e9954 _dispatch_client_callout + 16
4 libdispatch.dylib 0x00000001932ee20c _dispatch_main_queue_callback_4CF + 1608
5 CoreFoundation 0x0000000181c7a2ec __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
6 CoreFoundation 0x0000000181c78394 __CFRunLoopRun + 1492
7 CoreFoundation 0x0000000181ba51f4 CFRunLoopRunSpecific + 396
8 GraphicsServices 0x000000018afc76fc GSEventRunModal + 168
9 UIKit 0x000000018653610c UIApplicationMain + 1488
10 libxpc.dylib 0x00000001934fc250 _xpc_objc_main + 768
11 libxpc.dylib 0x00000001934fdf38 xpc_main + 200
12 Foundation 0x0000000182ca1818 service_connection_handler
13 PlugInKit 0x000000018d1be910 -[PKService run] + 600
14 PlugInKit 0x000000018d1be548 +[PKService main] + 64
15 PlugInKit 0x000000018d1be938 +[PKService _defaultRun:arguments:] + 24
16 libextension.dylib 0x00000001924f9960 NSExtensionMain + 68
17 libdyld.dylib 0x0000000193316a08 start + 4
我在 Crashlytics 上看到了完全相同的东西。
根据 Apple 的说法,此崩溃是 iOS 8(包括 8.3 beta)中的一个已知错误。崩溃仅在扩展程序关闭时发生,这意味着用户不会看到扩展程序崩溃。
所以我们现在唯一能做的就是忽略这次崩溃
我在我的 iOS Today Extension 上安装了 Crashlytics,但我遇到了这个奇怪的崩溃。有谁知道为什么会这样?
Fatal Exception: NSInternalInconsistencyException removing inactive plug-in com.somecompany.someapp.TodayExtension(1.0)>
崩溃的行是
11 PlugInKit -[PKService unregisterPersonality:] + 188
在我今天的扩展中,在 viewDidLoad 中,它将获取用户的当前位置,然后发出网络请求以获取有关该位置的数据。发生这种情况是因为我的操作花费的时间太长并且 iOS 正在终止我的扩展吗?我无法重现这一点,但我认为用户看到的是一个空白 space 扩展名应该在的地方,或者除了扩展名的标题外什么都没有显示。
Thread : Fatal Exception: NSInternalInconsistencyException 0 CoreFoundation 0x0000000181cc2530 __exceptionPreprocess + 132 1 libobjc.A.dylib 0x0000000192c980e4 objc_exception_throw + 60 2 CoreFoundation 0x0000000181cc23f0 +[NSException raise:format:] 3 Foundation 0x0000000182b6dc34 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112 4 PlugInKit 0x000000018d1c04a0 __35-[PKService unregisterPersonality:]_block_invoke + 488 5 libdispatch.dylib 0x00000001932e9954 _dispatch_client_callout + 16 6 libdispatch.dylib 0x00000001932f31e4 _dispatch_barrier_sync_f_invoke + 76 7 PlugInKit 0x000000018d1c024c -[PKService unregisterPersonality:] + 188 8 PlugInKit 0x000000018d1bdfec -[PKServicePersonality shutdownPlugIn] + 108 9 CoreFoundation 0x0000000181cc8350 __invoking___ + 144 10 CoreFoundation 0x0000000181bc621c -[NSInvocation invoke] + 296 11 Foundation 0x0000000182c9d33c __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT__ + 24 12 Foundation 0x0000000182b4b8c8 -[NSXPCConnection _decodeAndInvokeMessageWithData:] + 1604 13 Foundation 0x0000000182accbd4 message_handler + 708 14 libxpc.dylib 0x00000001934f0c78 _xpc_connection_call_event_handler + 68 15 libxpc.dylib 0x00000001934eeb7c _xpc_connection_mach_event + 2160 16 libdispatch.dylib 0x00000001932e9a28 _dispatch_client_callout4 + 16 17 libdispatch.dylib 0x00000001932ed140 _dispatch_mach_msg_invoke + 492 18 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008 19 libdispatch.dylib 0x00000001932ec668 _dispatch_mach_invoke + 136 20 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008 21 libdispatch.dylib 0x00000001932eca5c _dispatch_queue_invoke + 132 22 libdispatch.dylib 0x00000001932f6318 _dispatch_root_queue_drain + 720 23 libdispatch.dylib 0x00000001932f7c4c _dispatch_worker_thread3 + 108 24 libsystem_pthread.dylib 0x00000001934c922c _pthread_wqthread + 816 25 libsystem_pthread.dylib 0x00000001934c8ef0 start_wqthread + 4
Thread : Crashed: service sync 0 libsystem_kernel.dylib 0x000000019342f270 __pthread_kill + 8 1 libsystem_pthread.dylib 0x00000001934cd170 pthread_kill + 112 2 libsystem_c.dylib 0x00000001933a6b18 abort + 112 3 libc++abi.dylib 0x0000000192465418 __cxa_bad_cast 4 libc++abi.dylib 0x0000000192484b8c default_unexpected_handler() 5 libobjc.A.dylib 0x0000000192c983c0 _objc_terminate() + 128 6 libc++abi.dylib 0x0000000192481bb4 std::__terminate(void (*)()) + 16 7 libc++abi.dylib 0x0000000192481c24 std::terminate() + 64 8 libobjc.A.dylib 0x0000000192c98318 _destroyAltHandlerList 9 libdispatch.dylib 0x00000001932e9968 _dispatch_client_callout + 36 10 libdispatch.dylib 0x00000001932f31e4 _dispatch_barrier_sync_f_invoke + 76 11 PlugInKit 0x000000018d1c024c -[PKService unregisterPersonality:] + 188 12 PlugInKit 0x000000018d1bdfec -[PKServicePersonality shutdownPlugIn] + 108 13 CoreFoundation 0x0000000181cc8350 __invoking___ + 144 14 CoreFoundation 0x0000000181bc621c -[NSInvocation invoke] + 296 15 Foundation 0x0000000182c9d33c __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT__ + 24 16 Foundation 0x0000000182b4b8c8 -[NSXPCConnection _decodeAndInvokeMessageWithData:] + 1604 17 Foundation 0x0000000182accbd4 message_handler + 708 18 libxpc.dylib 0x00000001934f0c78 _xpc_connection_call_event_handler + 68 19 libxpc.dylib 0x00000001934eeb7c _xpc_connection_mach_event + 2160 20 libdispatch.dylib 0x00000001932e9a28 _dispatch_client_callout4 + 16 21 libdispatch.dylib 0x00000001932ed140 _dispatch_mach_msg_invoke + 492 22 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008 23 libdispatch.dylib 0x00000001932ec668 _dispatch_mach_invoke + 136 24 libdispatch.dylib 0x00000001932f42d4 _dispatch_queue_drain + 2008 25 libdispatch.dylib 0x00000001932eca5c _dispatch_queue_invoke + 132 26 libdispatch.dylib 0x00000001932f6318 _dispatch_root_queue_drain + 720 27 libdispatch.dylib 0x00000001932f7c4c _dispatch_worker_thread3 + 108 28 libsystem_pthread.dylib 0x00000001934c922c _pthread_wqthread + 816
我的主线程(虽然没有在这里崩溃):
Thread : com.apple.main-thread 0 TodayExtension 0x00000001000ae370 -[TodayViewController normalView] (TodayViewController.m:32) 1 TodayExtension 0x00000001000adf58 __36-[TodayViewController showErrorView]_block_invoke (TodayViewController.m:173) 2 libdispatch.dylib 0x00000001932e9994 _dispatch_call_block_and_release + 24 3 libdispatch.dylib 0x00000001932e9954 _dispatch_client_callout + 16 4 libdispatch.dylib 0x00000001932ee20c _dispatch_main_queue_callback_4CF + 1608 5 CoreFoundation 0x0000000181c7a2ec __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 6 CoreFoundation 0x0000000181c78394 __CFRunLoopRun + 1492 7 CoreFoundation 0x0000000181ba51f4 CFRunLoopRunSpecific + 396 8 GraphicsServices 0x000000018afc76fc GSEventRunModal + 168 9 UIKit 0x000000018653610c UIApplicationMain + 1488 10 libxpc.dylib 0x00000001934fc250 _xpc_objc_main + 768 11 libxpc.dylib 0x00000001934fdf38 xpc_main + 200 12 Foundation 0x0000000182ca1818 service_connection_handler 13 PlugInKit 0x000000018d1be910 -[PKService run] + 600 14 PlugInKit 0x000000018d1be548 +[PKService main] + 64 15 PlugInKit 0x000000018d1be938 +[PKService _defaultRun:arguments:] + 24 16 libextension.dylib 0x00000001924f9960 NSExtensionMain + 68 17 libdyld.dylib 0x0000000193316a08 start + 4
我在 Crashlytics 上看到了完全相同的东西。 根据 Apple 的说法,此崩溃是 iOS 8(包括 8.3 beta)中的一个已知错误。崩溃仅在扩展程序关闭时发生,这意味着用户不会看到扩展程序崩溃。
所以我们现在唯一能做的就是忽略这次崩溃