iOS8/iPhone6 + XPC崩溃

问题描述:

我有一个应用程序构建在iOS8 SDK上,我将其归档,然后签署adhoc分发。iOS8/iPhone6 + XPC崩溃

这已经在所有设备上进行了2年的各种更新。现在我有一个iPhone 6加。

该应用程序运行正常后的第一个新的安装,但现在它不断与错误而崩溃:

"XPC API Misuse: Given object not of required type"

发生这种情况进入didFinishLaunchingWithOptions

调用堆栈之前:

Thread 0 name: XPC API Misuse: Given object not of required type. Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libxpc.dylib 0x0000000197dd99d8 _xpc_api_misuse + 60 1 libxpc.dylib 0x0000000197dd99d4 _xpc_api_misuse + 56 2 libxpc.dylib 0x0000000197dc9ae8 xpc_dictionary_set_value + 88 3 libxpc.dylib 0x0000000197dc5538 xpc_dictionary_set_string + 48 4 CoreFoundation 0x0000000186e4b590 _CFXNotificationRemoveObservers + 912 5 Foundation 0x0000000187d1ff20 -[NSNotificationCenter removeObserver:name:object:] + 252 6 UIKit 0x000000018b8588e4 -[UITableView dealloc] + 96 7 UIKit 0x000000018b6bf510 -[UIView(Hierarchy) removeFromSuperview] + 696 8 UIKit 0x000000018b79cb24 -[UIScrollView removeFromSuperview] + 76 9 UIKit 0x000000018b6c219c -[UIView dealloc] + 444 10 CoreFoundation 0x0000000186e217e4 CFRelease + 520 11 CoreFoundation 0x0000000186e2dda4 -[__NSArrayM dealloc] + 148 12 libobjc.A.dylib 0x0000000197599720 (anonymous namespace)::AutoreleasePoolPage::pop(void*) + 560 13 CoreFoundation 0x0000000186e25400 _CFAutoreleasePoolPop + 24 14 Foundation 0x0000000187d1f180 -[NSAutoreleasePool release] + 144 15 UIKit 0x000000018b72f9ac -[UIApplication _run] + 584 16 UIKit 0x000000018b72a980 UIApplicationMain + 1484 17 HelloWorld 0x000000010000636c main (main.m:16) 18 libdyld.dylib 0x0000000197beea04 start + 0

任何人都可以帮忙吗?

+0

我有一些来自用户的零星崩溃报告,显示相同的基本问题。全部在iPhone 6和6+上。没有其他设备。 – rmaddy 2014-10-17 03:53:56

+0

同样的问题,只发生在iPhone 6和iPhone 6 Plus上。 – nonamelive 2014-10-29 18:28:01

我在我自己的应用程序中修复了崩溃,但我无法100%地指出根本原因。我怀疑这是内存破坏或保留对象。

关键是[UITableView dealloc]我在我的表视图中执行dealloc以查看发生问题的位置。我最终将其追溯到从.xib文件实例化的UITableViewCell。这个特定的.xib包含多个UITableViewCell。在给每个表格视图指定它自己的.xib后,崩溃消失了。

+0

有这个问题,但使用故事板。你有什么想法如何解决这个问题? – 2014-11-08 22:36:24

+0

同样的问题。这是我们的应用程序中最严重的崩溃之一。 – Jake 2015-10-07 15:45:45

+0

鉴于你有一个“API滥用”的错误,苹果会在整个XPC文档中定期记录这个错误......非常类似的,它也出现在手册页中。 XPC拥有一个相当复杂的缓存系统,它与凝聚在一起的'launchd'只是在做出更改后任意“重新运行”崩溃的应用程序并不总能解决它。谈到XPC崩溃时,XPC缓存需要刷新。有时,它只是等待launchd(有利于导致可能的并且压力大)...出于兴趣,XPC高速缓存刷新由'/ usr/libexec/xpchelper --rebuild-cache'执行 – 2016-01-13 07:42:52