2014-10-17 147 views
5

我有一個應用程序構建在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

回答

1

我在我自己的應用程序中修復了崩潰,但我無法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