Po pierwszym uruchomieniu aplikacji wszystko działa poprawnie. Wciśnę przycisk stop, wykonam trochę pracy, a kiedy uruchomię go ponownie, wydaje się, że zawiesza się, zanim zdąży cokolwiek załadować. Naciśnij stop, ponownie naciśnij Uruchom i działa dobrze. Dopóki nie powtórzę procesu.
W tym miejscu xcode wyróżnia błąd za pomocą „Wątek 1: sygnał SIGABRT”. Oczywiście nie ma tu nic przydatnego.
int main(int argc, char *argv[])
{
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
}
}
Konsola debugowania nie pokazuje nic poza (lldb) (więc przypuszczam, że w tym momencie zatrzymuje się, nie ulega awarii) Więc kiedy wykonuję BT
to, co otrzymuję:
(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb)
Oto, co zrobiłem do tej pory:
- Przeprowadzono „czyszczenie”
- Zresetowałem symulatory i zresetowałem komputer
- Zakomentowałem cały kod w kontrolerze widoku, nadal się zawiesza
- Zakomentowałem cały kod w delegacie aplikacji, nadal ulega awarii
- ALE .... Uruchomiłem aplikację na urządzeniu poza Xcode i wydaje się, że działa idealnie.
- (EDYTUJ) Usunąłem / ponownie zainstalowałem xcode i całą zawartość (symulatory, dokumenty) z różnych folderów pamięci podręcznej (to powstrzymuje xcode przed automatyczną ponowną instalacją starych po nowym pobraniu). Nadal nie mogę jednak znaleźć miejsca, w którym przechowywane są narzędzia wiersza poleceń. Nadal się zawiesza.
Mimo to aplikacje nadal ulegają awarii co drugie / drugie uruchomienie.
Rzecz w tym, że nie miałem żadnych problemów do ostatniej aktualizacji Xcode. Czy to może być błąd Xcode?
(EDYCJA) Używam również najnowszych wersji deweloperskich OSX. Czy to może przeszkadzać?
Odpowiedzi:
Wydaje się, że jest to połączenie OS X 10.8.4 i LLDB . Jak mówi kenster, przejście na GDB sprawia, że problem znika.
Edycja:
jest to spowodowane sytuacją wyścigu na serwerze debugowania (słyszę).
Oto rozwiązanie, jeśli chcesz nadal używać LLDB: Zamiast klikać Uruchom, gdy aplikacja jest już uruchomiona w symulatorze, wyłącz ją w Xcode (⌘-.), Powiedz „Uwielbiam Xcode” 5 razy i uruchom ją ponownie (⌘- R). Nie zawiesza się, przetestowałem to.
Naprawiono w Xcode 4.6.3.
źródło
Ja też miałem ten problem. Spójrz na ten post. Aplikacja Xcode 4.6.2 ulega awarii przy każdym drugim uruchomieniu
Zasadniczo zmień swój debugger z LLDB na GDB. Nie mogę uwierzyć, że było to spowodowane błędami LLDB.
źródło
Przełączenie na GDB lub ponowne uruchomienie urządzenia / hosta nie rozwiązuje problemu w moim środowisku.
Jednak zmodyfikowanie elementu docelowego Run w skojarzonym schemacie XCode, aby nie uruchamiało się już automatycznie, ale zamiast tego „Poczekaj na uruchomienie aplikacji HelloWorld ” .
Jedyną wadą jest to, że oznacza to ręczne uruchomienie aplikacji na urządzeniu. Debugger zostanie wtedy połączony.
źródło