2010-01-20 12 views
5

Sono assolutamente in perdita su questo rapporto di arresto anomalo. Ho già alcune app abbastanza complicate nello store e di recente ho presentato un aggiornamento a uno di loro. Ho subito ricevuto la risposta che era stata respinta per arresto anomalo all'avvio. Stanno usando esattamente la stessa versione SDK di me, 3.1.2. Dopo aver simboleggiato la traccia dello stack, questo è l'arresto anomalo:App iPhone respinta da Apple con rapporto di arresto anomalo - impossibile riprodurre

Process:   MyAppName [60] 
Path:   /var/mobile/Applications/0EC19245-D3A4-47D0-94D9-XXXXXXXXXX/MyAppName.app/MyAppName 
Identifier:  MyAppName 
Version:   ??? (???) 
Code Type:  ARM (Native) 
Parent Process: launchd [1] 

Date/Time:  2010-01-19 15:43:46.804 -0800 
OS Version:  iPhone OS 3.1.2 (7D11) 
Report Version: 104 

Exception Type: EXC_CRASH (SIGABRT) 
Exception Codes: 0x00000000, 0x00000000 
Crashed Thread: 0 

e questa è la traccia dello stack pertinente.

Thread 0 Crashed: 
0 libSystem.B.dylib    0x0007e9ac __kill + 8 
1 libSystem.B.dylib    0x0007e99c kill + 4 
2 libSystem.B.dylib    0x0007e98e raise + 10 
3 libSystem.B.dylib    0x0009363a abort + 34 
4 libstdc++.6.dylib    0x000453b0 __gnu_cxx::__verbose_terminate_handler() + 376 
5 libobjc.A.dylib     0x00005858 _objc_terminate + 104 
6 libstdc++.6.dylib    0x00043776 __cxxabiv1::__terminate(void (*)()) + 46 
7 libstdc++.6.dylib    0x000437ca std::terminate() + 10 
8 libstdc++.6.dylib    0x00043896 __cxa_throw + 74 
9 libobjc.A.dylib     0x00004714 objc_exception_throw + 64 
10 Foundation      0x000013c2 __NSThreadPerformPerform + 570 
11 CoreFoundation     0x00056a96 CFRunLoopRunSpecific + 1834 
12 CoreFoundation     0x00056356 CFRunLoopRunInMode + 42 
13 GraphicsServices    0x00003cb8 GSEventRunModal + 108 
14 GraphicsServices    0x00003d64 GSEventRun + 56 
15 UIKit       0x00002768 -[UIApplication _run] + 384 
16 UIKit       0x0000146c UIApplicationMain + 688 
17 MyAppName       0x0000ed6a main (main.m:13) 
18 MyAppName       0x000028e4 start + 44 

Per me che stacktrace è vicina inutile, si dice solo un componente si è schiantato quando abbiamo iniziato la vostra applicazione ancora non riesco a riprodurlo su un sistema simile (l'unica differenza è che sono in esecuzione Snow Leopard e io sono solo esecuzione di Leopard).

Qualche suggerimento su cosa potrei fare in seguito? Grazie.

+2

Che ne pensi di eseguire Snow Leopard? – mouviciel

+0

Questa è una considerazione, chiunque abbia una conoscenza approfondita del sistema operativo Apple ritenga che possa influire su di esso? A meno che i loro strumenti non differiscano in qualche modo tra i due SO ', non dovrebbe influenzare il modo in cui le cose girano su un iPhone che in fin dei conti è un dispositivo completamente separato. –

+0

Perché la versione di Mac OS è importante? Questo rapporto di crash dice che l'applicazione è stata compilata per ARM, quindi era in esecuzione su un iPhone o iPod. Si sta bloccando sul dispositivo, non sul Mac. –

risposta

3

In realtà non si dice che un componente si è bloccato durante l'avvio dell'applicazione. L'incidente potrebbe essere accaduto in qualsiasi momento.

Ciò che dice, però, è che si è bloccato in NSThreadPerform, che sembra che stiate cercando di chiamare performSelector su un oggetto che non esiste più, o forse contro un oggetto che non aveva il metodo che stavate cercando di invocare.

Quindi dovrei cercare ovunque usi performSelector sul thread principale, e provare a pensare da lì in che modo il target potrebbe non essere valido.

+0

Grazie per il suggerimento, ma non seguendo la traccia indietro suggerisco che la chiamata non proviene dal mio codice, l'unica cosa che la mia app richiama è quella di iniziare da UIApplicationMain. –

+0

Se guardi su main.m, quello che vedi è che in pratica si estende per sempre - tutte le tracce iniziano in main perché quello è il runloop che chiama tutto. Quando si chiama qualcosa come performSelector: withDelay :, aggiunge un selettore per chiamare a una coda e quando hai finito con la chiamata corrente ritorna al ciclo principale, che poi vede che c'è un selettore da chiamare e prova a chiamarlo - che nella tua app si blocca. Quindi devi capire cosa ha messo su un selettore da chiamare. –

+0

Potrebbe essere possibile una notifica o anche una richiamata della connessione NSURL. Il fatto che sia un crash mi dice che l'oggetto che avrebbe dovuto essere chiamato non esiste più, se hai appena provato a chiamare un cattivo selettore, vedresti invece un messaggio che non riconosce un'eccezione ... –

Problemi correlati