2014-10-17 16 views
5

Ho una build di app sull'SDK iOS8 che archiviano e quindi firmo per la distribuzione ad hoc.Arresto iOS8/iPhone6 ​​+ XPC

Questo ha funzionato per 2 anni su tutti i dispositivi con vari aggiornamenti. Ora ho un iPhone 6 plus.

L'applicazione ha funzionato benissimo la prima dopo una nuova installazione, ma ora si blocca di continuo con l'errore:

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

Questo avviene prima che arrivi in ​​didFinishLaunchingWithOptions

stack di chiamate:

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

Qualcuno può aiutare?

+0

Ho avuto alcuni rapporti sugli arresti anomali di utenti che mostravano lo stesso problema di base. Tutto su iPhone 6 e 6+. Nessun altro dispositivo. – rmaddy

+0

Lo stesso problema e si verifica solo su iPhone 6 e iPhone 6 Plus. – nonamelive

risposta

1

Ho risolto il crash della mia app ma non riesco a individuare il 100% della causa principale. Sospetto che sia stata la corruzione della memoria o il mantenimento di un oggetto.

La chiave era [UITableView dealloc] Ho implementato dealloc nella mia vista tabella per vedere dove si stava verificando il problema. Alla fine l'ho tracciato fino a un UITableViewCell istanziato da un file .xib. Questo particolare .xib conteneva più UITableViewCell s. Dopo aver dato a ciascuna vista tabella, il proprio .xib è scomparso.

+0

Avere questo problema, ma utilizzare lo storyboard. Hai qualche idea su come risolvere questo problema? –

+0

Stesso problema. È uno dei nostri crash principali nelle nostre app. – Jake

+0

Visto che hai un errore di "API Misuse", Apple documenta regolarmente questo aspetto attraverso i documenti XPC ecc ... Interstamente si presenta anche nelle pagine man. XPC ha un sistema di cache piuttosto complesso che gelifica strettamente con 'launchd' fa semplicemente" ri-eseguire "arbitrariamente un'app che si blocca dopo aver apportato le modifiche non sempre la risolve. Le cache XPC devono essere scaricate quando si verificano arresti anomali di XPC. A volte, si tratta solo di aspettare launchd (a favore di causare forse utter e stressing out) ... Per quanto riguarda gli interessi, il flush della cache di XPC viene eseguito da/usr/libexec/xpchelper --rebuild-cache' –