2011-07-15 34 views
16

Buduję i uruchamiam projekt w symulatorze iPhone'a. Wysyłam je do tła, naciskając przycisk Home. Następnie dwukrotnie naciśnij przycisk strony głównej, aby znaleźć aplikację w tle i dotknij jej. Staje się aktywny i aplikacja działa dalej. Tutaj nie mam problemu bez względu na to, ile razy to powtarzam. Następnie zabijam proces, dotykając małego czerwonego znaku minus na ikonie aplikacji. Ale jeśli ponownie dotknę ikonę aplikacji, aby ponownie ją uruchomić, pojawia się komunikat SIGKILL i aplikacja ulega awarii. Co mogłoby być tego przyczyną? Czy może to być spowodowane przez moje preferencje XCode?Wyjątek SIGKILL po ponownym uruchomieniu aplikacji

+1

Co mówi konsola? –

+0

To po prostu mówi Odebrano SIGKILL –

+0

Istnieje wiele możliwości błędu SIGKILL. Podaj informacje o konsoli. – Raxit

Odpowiedz

21

To naprawdę nie jest awaria: tylko XCode ma opóźnioną reakcję na stuknięcie małego czerwonego znaku minusowego. Kiedy zamkniesz swoją aplikację w ten sposób, system operacyjny wysyła sygnał SIGKILL do twojego procesu - ale debugger XCode nie "widzi" SIGKILL dopóki nie uruchomisz ponownie aplikacji.

Możesz "zregenerować się" po tej "awarii", przypadkowo klikając przycisk Kontynuuj w debugerze.

+0

+1 za wyjaśnienie, dlaczego tak się dzieje. Ma doskonały sens. – cduhn

+0

Ale jest tylko mały niuans. Nie zdarza się to w przypadku wszystkich aplikacji. Dzieje się tak tylko z 2 z nich. –

+0

Prawdopodobnie jest to błąd w XCode, który zdarza się w ogóle - debugger naprawdę nie powinien przedstawiać SIGKILL z systemu operacyjnego jako coś do debugowania - ale podejrzewam może minąć trochę czasu, zanim wzrośnie na szczyt listy "rzeczy do naprawienia na XCode" firmy Apple. Jeśli jednak chcesz zgłosić raport o błędach w Apple, może to pomóc, jeśli weźmiesz pod uwagę, że dwie twoje aplikacje konsekwentnie łaskoczą błąd (a inne aplikacje tego nie robią). –

1

Widziałem podobne awarie symulatora, gdy nie pozwalałem, aby debugger odłączył się wdzięcznie od aplikacji. Zamiast zabijać aplikację, dotykając małego czerwonego znaku minus, spróbuj nacisnąć przycisk "stop" w Xcode.

Aby dodatkowo potwierdzić, że jest to związane z debuggerem, spróbuj uruchomić aplikację po raz pierwszy, dotykając ikony, zamiast używać opcji Utwórz i uruchom w Xcode. Następnie zabij go, dotykając czerwonego X i ponownie go uruchom. Jeśli nadal występuje błąd bez dołączonego debuggera, moja hipoteza jest nieważna.

Powiązane problemy