Testowałem moją aplikację na symulatorze, gdy zawiesił się po kliknięciu przycisku UIAlertView. Przestałem tam debugować, wprowadziłem pewne zmiany w kodzie i ponownie zbudowałem aplikację. Teraz, gdy uruchamiam aplikację, pojawia się ten błąd w konsoli
Nie można zarejestrować com.myApp.debug na serwerze bootstrap. Błąd: nieznany kod błędu. Ogólnie oznacza to, że inna instancja tego procesu już działała lub jest zawieszona w debuggerze. Program odebrał sygnał: „SIGABRT”.
Próbowałem usunąć aplikację z symulatora, wykonując czystą kompilację, ale nadal pojawia się ten błąd, gdy próbuję uruchomić aplikację.
Co powinienem zrobić, aby móc ponownie uruchomić aplikację na moim symulatorze?
ios
xcode
ios-simulator
lostInTransit
źródło
źródło
ps ax | grep SimulatorBridge
Odpowiedzi:
Spróbuj wyjść i ponownie uruchomić symulator? Jeśli „gorzej się pogorszy”, zawsze możesz spróbować uruchomić ponownie: z mojego doświadczenia wynika, że powinno to naprawić.
źródło
status: było to widoczne ostatnio w systemie Mac OS 10.8 i Xcode 4.4.
tl; dr: Może się to zdarzyć w dwóch kontekstach: podczas uruchamiania na urządzeniu i podczas uruchamiania na symulatorze. Podczas pracy na urządzeniu odłączanie i ponowne podłączanie urządzenia wydaje się naprawiać problemy.
Mike Ash zasugerował
To nie działa cały czas. W rzeczywistości dla mnie to nigdy nie działało, ale w niektórych przypadkach wyraźnie działa. Po prostu nie wiem, które przypadki. Warto więc spróbować.
W przeciwnym razie jedynym znanym sposobem rozwiązania tego problemu jest ponowne uruchomienie uruchomionego użytkownika. Ponowne uruchomienie spowoduje to, ale istnieje mniej drastyczny / szybszy sposób. Musisz utworzyć innego użytkownika administracyjnego, ale musisz to zrobić tylko raz. Kiedy coś się zaklinuje, wyloguj się jako ty, zaloguj się jako ten użytkownik i zabij uruchomionego, który należy do twojego głównego użytkownika, np.
zastępując swoją główną nazwę użytkownika
user_id
. Zalogowanie się ponownie, gdy normalny użytkownik powróci do normalnego stanu. Trochę bolesne, ale mniej niż pełne ponowne uruchomienie.Detale:
To zaczęło się częściej zdarzać w Lion / Xcode 4.2. (Osobiście nigdy nie widziałem tego przed tą kombinacją).
Błąd wydaje się być uruchomiony, co dziedziczy proces aplikacji jako dziecko, gdy debugger przestaje debugować go bez zabijania. Zazwyczaj jest to sygnalizowane przez aplikację, która staje się zombie, mając status procesu Z w ps.
Wydaje się, że głównym problemem jest serwer nazw bootstrap, który jest zaimplementowany podczas uruchamiania. To (o ile rozumiem) mapuje identyfikatory aplikacji na porty mach. Po uruchomieniu błędu aplikacja umiera, ale nie jest usuwana z mapy serwera nazw serwera bootstrap, w wyniku czego serwer bootstrap odmawia rejestracji innej instancji aplikacji pod tą samą nazwą.
Spodziewano się (patrz komentarze), że wymuszono uruchomienie
wait()
dla zombie naprawi rzeczy, ale tak nie jest. To nie status zombie jest głównym problemem (dlatego niektóre zombie są łagodne), ale serwer nazw bootstrap i nie ma znanego sposobu na usunięcie tego braku zabijania.Wygląda na to, że błąd został wywołany przez coś złego między Xcode, gdb i uruchomionym użytkownikiem. Właśnie powtórzyłem klin, uruchamiając aplikację w symulatorze iPhone'a, zatrzymując ją w gdb, a następnie wykonując kompilację i uruchamiając na symulatorze iPada. Wydaje się być wrażliwy na przełączanie symulatorów (iOS 4.3 / iOS 5, iPad / iPhone). Nie zdarza się to cały czas, ale dość często, kiedy często zmieniam symulatory.
Zabijanie uruchomione, gdy jesteś zalogowany, spieszy twoją sesję. Wylogowanie i ponowne zalogowanie nie zabija uruchomionego użytkownika; OS X utrzymuje obecny proces. Ponowne uruchomienie naprawi rzeczy, ale to bolesne. Powyższe instrukcje są szybsze.
Przesłałem błąd do Apple, FWIW. rdar: // 10330930
źródło
Zauważyłem, że zacząłem mieć ten problem z Lion + Xcode 4.2. Wystąpił również problem w Xcode 4.3.
Próbowałem wszystkich sugestii, ale żadna z nich nie działała inaczej niż pełne ponowne uruchomienie.
Oto, w jaki sposób określasz, czy potrzebujesz szybko zrestartować komputer.
Wymień wszystkie swoje procesy Zombie:
Jeśli zobaczysz swoją aplikację na liście jako proces Zombie, będziesz musiał ponownie uruchomić komputer. Komunikat o błędzie mówi: „Ogólnie oznacza to, że inna instancja tego procesu już działała lub jest zawieszona w debuggerze”. Xcode wykrywa proces Zombie, którego nie można zabić. Jedynym sposobem, aby to naprawić, jest ponowne uruchomienie systemu. :(
EDIT, 20120823: Mam lepszą wiedzę na temat procesów Zombie, więc chciałem zaktualizować tę odpowiedź. Proces Zombie jest tworzony, gdy proces nadrzędny nie wywołuje funkcji wait () (poczekaj, aż proces zmieni stan) na kończącym się procesie potomnym. Nie możesz uruchomić polecenia „zabij” bezpośrednio w procesie Zombie, ale jeśli zabijesz proces nadrzędny, proces potomny zombie zostanie „zebrany” i usunięty z tabeli procesów.
Dawno nie widziałem tego problemu, więc nie sprawdziłem, co to jest proces nadrzędny w tym scenariuszu. Alternatywą dla zabicia procesu nadrzędnego jest ponowne uruchomienie systemu. :)
źródło
Właśnie mi się to przydarzyło: błąd pojawiał się tylko na moim urządzeniu, a symulator działał dobrze. W końcu musiałem zresetować urządzenie i błąd zniknął.
źródło
Ostatnio często mam ten problem. Co mogłoby temu zapobiec? Wylogowanie się i rozwiązanie problemu rozwiązuje problem, ale ... denerwujące jest to robić tak często.
EDYTOWAĆ:
Właśnie znalazłem przyczynę. Miałem błąd w metodzie ApplicationWillTerminate. Więc kiedy kliknę przycisk Stop w oknie Xcode, aplikacja nie mogła poprawnie zakończyć działania i zaczęła się zawieszać.
sprawdź Monitor aktywności, aby sprawdzić, czy Twoja aplikacja znajduje się na liście. wymuś zamknięcie, jeśli to możliwe.
źródło
Jeśli uważasz, że twój problem jest spowodowany procesami zombie:
(jak we wcześniejszym komentarzu https://stackoverflow.com/a/8104400/464289 ) i po prostu chcesz natychmiast rozwiązać problem, możesz to zrobić bez ponownego uruchamiania lub zabijania czegokolwiek. Po prostu zmień nazwę pliku wykonywalnego docelowego projektu:Łatwy!
źródło
Cóż, nie ma odpowiedzi, ale przynajmniej jeden test do wykonania. Otwórz terminal i uruchom następującą komendę: „ps-Ael | grep Z”. Jeśli otrzymasz dwa wpisy, jeden „(brzęk)”, a drugi nazwę aplikacji lub firmy, oznacza to, że nie możesz się uruchomić.
Jeśli jesteś programistą, wprowadź krótki błąd i powiedz Apple, jak absolutnie irytujące jest konieczność ponownego uruchomienia komputera, i wspomnij, że mogą skopiować ten błąd na „rdar: // 10401934”, który właśnie wprowadziłem.
David
źródło
Zresetowanie symulatora iOS naprawiło błąd. Chociaż spowoduje to usunięcie wszystkich aplikacji, które masz w Symulatorze, to rozwiązuje problem bez konieczności ponownego uruchamiania komputera.
Możesz zresetować Symulator iOS, wykonując następujące czynności:
1) Przejdź do menu „iOS Simulator”, obok logo Apple () po lewej stronie ekranu głównego.
2) Wybierz „Resetuj zawartość i ustawienia ...”.
3) Przeczytaj komunikat pop, a jeśli się zgadzasz, kliknij „Resetuj”, w przeciwnym razie kliknij „Nie resetuj”.
źródło
źródło
Miałem problem wspomniany przez @jyap z procesami zombie. Jedynym sposobem na ich usunięcie było ponowne uruchomienie. Zauważyłem jednak, że moi przyjaciele pracujący nad tym samym projektem dostaną ten sam problem, ale mogą zabić symulator bez tworzenia procesu zombie. Całkowicie odinstalowałem Xcode i ponownie go zainstalowałem, i mimo że nadal pojawia się błąd, nie tworzy on procesów zombie, więc nie muszę się restartować.
Zanim to zrobiłem, używałem tego naprawdę brzydkiego obejścia: zmień identyfikator aplikacji i uruchom ponownie. Skończysz z niepotrzebnymi kopiami aplikacji w symulatorze, ale możesz odłożyć na chwilę restart.
źródło
Ten błąd często mi się zdarza, prawie za każdym razem, gdy testuję aplikację w Symulatorze, zmuszając mnie do ponownego uruchomienia.
Oto obejście, jeśli chcesz wykonać trochę pracy:
YES
.Oznacza to, że po naciśnięciu przycisku Home w symulatorze lub wyjściu z symulatora aplikacja się nie zawiesza.
Nie zapomnij zmienić tego ustawienia przed dystrybucją! Umieść go na liście kontrolnej wydania :)
źródło
Jeśli tak się stanie podczas testowania na telefonie iPhone. Po prostu uruchom ponownie telefon. Z tego, co powiedziano mi, telefon lub symulator nadal wierzy, że istnieje instancja uruchomionej aplikacji, więc kiedy była ona ostatnio uruchamiana, nie zakończyła się poprawnie, czy to z powodu błędu w kodzie, czy też telefon / symulator po prostu chciał mieć jęczeć.
źródło
Wystąpił ten błąd podczas debugowania mojej aplikacji na telefonie iPhone 4. Ciężkie ponowne uruchomienie iPhone'a rozwiązało mój problem. (Wyłączanie zawieszonego iPhone'a ...)
Na komputerze Mac nie miałem procesu zombie, a ponowne uruchomienie komputera Mac nie rozwiązało problemu.
Może ten błąd może objawiać się zarówno na symulatorze, jak i na rzeczywistych urządzeniach?
źródło
Uruchomiłem ponownie urządzenie, działało! :RE
Dziękujemy wszystkim za wspaniałe sugestie.
źródło
Właśnie miałem ten błąd. Próbowałem ponownie uruchomić symulator i Xcode, ale mój projekt zadziałałby dopiero po wyczyszczeniu i kompilacji. Nie mam pojęcia, co to spowodowało.
źródło
Miałem rekursywnego setera, który przeleciał przez stos i zabił moją aplikację w taki sposób, że musiałem uruchomić komputer z iPada. Było to możliwe do udowodnienia dzięki poprawce w kodzie.
źródło
Miałem ten sam problem i rozwiązałem go, wykonując następujące czynności
Zrobiłem też jeszcze jedną rzecz, ponieważ Xcode jest skonfigurowany do używania iOS 5.0, a mój projekt używa iOS 4.3
źródło
Alternatywne obejście:
Tracisz wszystkie dane w aplikacji, ponieważ w rzeczywistości jest to nowa aplikacja działająca w odniesieniu do symulatora iPhone'a. To może, ale nie musi być bardziej irytujące niż ponowne uruchomienie - chciałem tylko dodać go do listy.
źródło
Powód
Uruchamianie aplikacji w symulatorze przed całkowitym zatrzymaniem poprzednio uruchomionej aplikacji.
Poprawka
Poczekaj, aż zobaczysz przycisk Stop ponownie aktywny, zanim ponownie uruchomisz.
(Używam Xcode 4.2.1. Ten problem występował bardzo często po aktualizacji do OS X Lion).
źródło
Naprawiono przez ponowne uruchomienie mojego telefonu po usunięciu aplikacji, a następnie przebudowanie go do stanu czystego i ponownego uruchomienia. Teraz działa dobrze.
Dziwne.
źródło
Dla mojego problemu nie jest wymagana żadna przebudowa ani ponowna instalacja, aw moim przypadku błąd pojawił się podczas próby uruchomienia aplikacji na telefonie iPhone. Symulator działał dobrze.
Rozwiązanie: Usuń aplikację z telefonu, zrestartuj telefon na zimno i teraz wszystko jest w porządku.
źródło
Zdarzyło mi się bardzo z Xcode 4.2.1 na Lionie. Zaktualizowano do 4.3.2 i tak się już nie dzieje. Cieszę się, że to naprawili.
źródło
Mike Ash opublikował rozwiązanie (niech Bóg go błogosławi!), Które nie wymaga ponownego uruchomienia komputera. Po prostu biegnij:
źródło
Myślę, że jest to spowodowane wymuszonym zamknięciem aplikacji na iPhonie przed naciśnięciem przycisku stop w Xcode. Czasami, gdy naciśniesz przycisk stop w Xcode, zamknięcie aplikacji, jeśli się zawiesiła, zajmuje więcej czasu. Ale bądź cierpliwy, w końcu to się skończy przez większość czasu.
źródło
Możesz przydzielić zmienną w funkcji lub zakładce. Spowoduje to zwolnienie, jeśli twoja funkcja lub karta zostaną zamknięte. Musisz więc zadeklarować zmienną składową lub zmienną globalną.
źródło
Ten błąd pojawiał się cały czas, dopóki nie przestałem ufać przyciskowi „Stop” w oknie dialogowym Uruchom. Teraz, gdy zawsze staram się zatrzymać na pasku narzędzi przed próbą uruchomienia, nie spotkałem jeszcze żadnych procesów zombie.
źródło
O mój - próbowałem WSZYSTKIEGO wymienionego powyżej oraz w innych postach. Ponownie zainstalowałem Xcode, uruchomiłem ponownie komputer, skopiowałem wszystkie brakujące pliki do odpowiednich folderów ... W końcu utworzyłem kopię zapasową mojego iPhone'a, wyczyściłem go i przywróciłem, i zadziałało!
Wydaje mi się, że przyczyną może być czytanie i odłączanie mojego iPhone'a na biało, który działał z narzędziami wydajności wykrywającymi wycieki. Lub coś takiego.
Aaaah, wielkie westchnienie ulgi.
źródło
W najgorszym stanie Zresetuj zawartość i ustawienia iOS Simulater i przez większość czasu w moim przypadku, zamknięcie XCode wraz z symulatorem, zawsze działa dla mnie z XCode4.6 (które często się zawieszają)
źródło
Tego rodzaju problem napotkałem raz w moim przypadku, oto co zrobiłem
W większości przypadków uruchomiłem go w ekstremalnych przypadkach kroku 6 i musiałem ponownie uruchomić komputer.
źródło
Ten błąd występował w starszych wersjach symulatora systemu iOS, ponieważ starsze instancje zadania na innym zamykanym urządzeniu mogły kolidować z nową instancją.
iOS 6.0 i nowsze nie powinny mieć takich problemów, ponieważ iOS 6.0 wprowadził użycie podzbiorów bootstrap, a iOS 7.0 wprowadził użycie dedykowanego serwera bootstrap (launchd_sim), który jest całkowicie odizolowany od serwera bootstrap hosta.
źródło