Fehler beim testen der iOS-simulator: nicht registrieren Konnte mit dem bootstrap-server
War ich testen meiner app auf dem simulator, wenn es stürzte auf das klicken auf eine Schaltfläche ein uialertview-Objekt. Ich hörte auf Fehlersuche, machte einige änderungen an den code und baute die app wieder. Wenn ich jetzt die Anwendung ausführen, ich bekomme diese Fehlermeldung in der Konsole
Nicht registrieren konnte com.myApp.debug mit dem bootstrap-server. Fehler: unbekannter Fehler code.
Dies bedeutet im Allgemeinen, dass eine andere Instanz dieser Prozess bereits ausgeführt wurde, oder hingen Sie in den debugger.Program received signal: "SIGABRT".
Ich habe versucht, das entfernen der app aus dem simulator, dabei sauber aufzubauen, aber ich bekomme immer noch diese Fehlermeldung, wenn ich versuche, die app auszuführen.
Was muss ich tun, um in der Lage zu führen Sie die app auf mein simulator wieder?
- Irgendwelche Vorschläge, was zu tun ist, wenn dies geschieht während des Tests auf dem Gerät? Ich habe versucht das Gerät neu zu starten, Xcode.
- Ich habe auch versucht zu löschen, die app auf dem Gerät, das beenden aller aktiven apps (Doppelklick auf home, halten Sie den finger nach unten auf app-Symbol, Tippen Sie auf ' - ' - Zeichen) Neustart von Xcode, ausloggen und wieder. Nichts funktioniert so weit.
- Versuchen Sie "cache Leeren" in der XCode-Menü. Das hilft ebenso.
- was ist der Prozess in activity monitor?
- Für alle vor diesem Problem, später herausfand, geschieht dies meistens durch einen Fehler im code. Nach einigen Stück code, der entweder nimmt eine Menge an Ausführungszeit oder nimmt die app in einer Schleife.
- Wenn das passiert, ich töte einfach die SimulatorBridge und beenden Sie den simulator.
ps ax | grep SimulatorBridge
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, beenden und Neustarten der simulator? Wenn "schlimmer kommt zum schlechtesten" Sie können immer versuchen Sie einen Neustart: in meiner Erfahrung dieses Problem beheben sollte.
kill -9
auf die hung-Prozess, wie vonps ax | grep Simulator
(die hier vorgeschlagen werden, durch BadPirate)status: diesem gesehen worden, wie vor kurzem, als Mac OS 10.8 und Xcode 4.4.
tl;dr: Dies kann in zwei Kontexten: wenn auf dem Gerät laufen, und bei der Ausführung auf dem simulator. Wenn auf dem Gerät laufen, trennen und erneutes verbinden des Geräts scheint die Dinge zu beheben.
Mike Ash vorgeschlagen
Diese nicht die ganze Zeit arbeiten. In der Tat, es ist nie für mich gearbeitet, aber es ganz offensichtlich funktioniert in einigen Fällen. Weiß nur nicht welchen Fällen. Es ist also einen Versuch Wert.
Ansonsten, das einzige bekannte Weg, um dies zu beheben, starten Sie den launchd-user. Neustart tun, aber es ist eine weniger drastische/schneller Weg. Sie müssen, um einen anderen admin-Benutzer, aber Sie müssen nur ein mal machen. Wenn die Dinge Keil, melden Sie sich als selbst, als Benutzer anmelden, und töten die launchd, das gehört zu Ihrem Haupt-Benutzer, z.B.,
ersetzen Sie Ihre wichtigsten Benutzer-Namen für
user_id
. Die Protokollierung wieder als normale Benutzer bekommt Sie zurück in einem sauberen Zustand. Ein bisschen schmerzhaft, aber weniger als einem vollen reboot.details:
Dieser begonnen hat, passiert öfter mit Lion/Xcode 4.2. (Persönlich, ich nie sah vor, die Kombination.)
Bug zu sein scheint, launchd, das übernimmt die app Prozess wie ein Kind, wenn der debugger hält Debuggen ohne es zu töten. Dies ist in der Regel signalisiert die app zum zombie zu werden, dass ein Prozess den status von Z in ps.
Kernthema zu sein scheint in der bootstrap-name-server ist implementiert in launchd. Dieses (soweit ich es verstehe) Karten-app-ids-mach-ports. Wenn der Fehler ausgelöst wird, wird die app stirbt, aber nicht gereinigt aus dem bootstrap-server, name-server-Zuordnung und als Ergebnis der bootstrap-server nicht zulassen, dass eine andere Instanz der app, registriert zu werden unter dem gleichen Namen.
Es wurde gehofft (siehe die Kommentare), dass das erzwingen launchd zu
wait()
für den zombie würde die Dinge beheben aber es funktioniert nicht. Es ist nicht der zombie-status das ist das Kern-problem (das ist, warum einige zombies sind unkritisch), aber der bootstrap-name-server und es gibt keine bekannte Methode, deaktivieren Sie diese kurze, zu töten launchd.Sieht es aus wie der bug ausgelöst wird, durch etwas schlimmes zwischen Xcode, gdb, und der Benutzer launchd. Ich habe nur wiederholt, wird der Keil durch ausführen einer app im iphone-simulator, nachdem es angehalten, innerhalb von gdb, und dann einen build und run auf das ipad-simulator. Es scheint empfindlich zu sein-switching-Simulatoren (iOS 4.3/iOS 5, iPad/iPhone). Es passiert nicht die ganze Zeit aber ziemlich Häufig, wenn ich Wechsel Simulatoren viel.
Töten launchd, während Sie eingeloggt sind, wird die Schraube bis Sie Ihre Sitzung. Abmelden und wieder anmelden nicht töten die Benutzer launchd; OS X hält den bestehenden Prozess um. Ein Neustart beheben Dinge, aber das ist schmerzhaft. Die oben genannten Anweisungen sind schneller.
Die ich eingereicht habe, einen bug an Apple, FWIW. rdar://10330930
gdb /sbin/launchd <pid>
) und Kraft-ein Aufruf von wait() (p (int)wait((int*)0)
, vorausgesetzt pid_t ist das gleiche wie ein int). Beachten Sie, dass Sie wahrscheinlich wollen, um sich als ein anderer Benutzer angemeldet werden, wenn dies zu tun, so dass Ihre Sitzung nicht Keil (oops!).man 2 wait
was blockiert, daher die Empfehlung, es zu tun als ein anderer Benutzer.wait
. Vielleichtwaitpid(-1, (void*)0, 1)
? In dem Fall, da sollten wir wissen, dass die PID der zombie, es könnte anstelle von -1.gdb
,wait
, und beenden Sie danngdb
. Man könnte auch einfachcontinue
oderdetach
innerhalbgdb
wenn Sie wollten, halten Sie es um den Fall, dass es wieder passiert.gdb launchd 140
Ursachen Terminal zu hängen, nach etwa 16 Sekunden (zum Glück, dies ist erstattungsfähig durch das töten Terminal die Ursachen gdb zu sterben); der workaround ist z.B.echo 'call (int)waitpid(1945,(void*)0,1)' | gdb launchd 140
, aber ich bin mir nicht sicher, ob dies tatsächlich behebt die "bootstrap-server" - problem, da ich nicht erleben, es (ich habe derzeit zwei zombies mit parent=launchd, dass don ' T stop simulator baut ausgeführt).wait
nicht Dinge reparieren. Aktualisiert meine Antwort mit ein wenig mehr Forschung, aber das Endergebnis ist das gleiche.launchctl bslist
zeigt z.B.D com.example.MyApp
,launchctl list
zeigt z.B.25247 - UIKitApplication:com.example.MyApp[0x957c]
obwohl 25247 ist ein Prozess beendet, und dielaunchctl list UIKitApplication:com.example.MyApp[0x957c]
sagtlaunchctl list returned unknown response
; log-Zeilen enthaltenBug: launchd_core_logic.c:3760 (25247):0
(und(25247):9
), aber diese können angezeigt werden, ohne den Keil. Ich gab auf und aktualisiert 10.7.3; als Nächstes werde ich versuchen das laichen Prozessen, bis ich es mit der richtigen PID und stupsen launchd, und wenn das fehlschlägt,kill -KILL -1
.Finde ich begonnen habe dieses Problem mit Lion + Xcode 4.2. Ich habe auch erlebt, das Problem in Xcode 4.3.
Ich habe versucht, alle Vorschläge, aber keiner von Ihnen gearbeitet haben, andere als ein voller Neustart.
Hier ist, wie Sie bestimmen, ob Sie einen Neustart erfordern schnell.
Liste der alle Ihre Zombie-Prozesse:
Wenn Sie Ihre app aufgeführt als Zombie-Prozess, müssen Sie Ihren Rechner neu starten. Die Fehlermeldung besagt "Dieses bedeutet im Allgemeinen, dass eine andere Instanz dieser Prozess bereits ausgeführt wurde, oder aufgehängt in den debugger". Nun, Xcode ist die Detektion dieser Zombie-Prozess, die kann man nicht töten. Nur so kann man dann korrigieren Sie es mit einem Neustart des Systems. 🙁
BEARBEITEN, 20120823: ich habe einige bessere Kenntnis der Zombie-Prozesse, also wollte ich update diese Antwort. Ein Zombie-Prozess erzeugt wird, wenn ein übergeordneter Prozess nicht, rufen Sie wait() (warte-für den Prozess zum ändern des Status) auf einem beenden des Kind-Prozesses. Sie kann nicht laufen 'kill' direkt auf einen Zombie-Prozess, aber wenn Sie töten die Muttergesellschaft, die zombie-Kind Prozess 'geerntet' und entfernt von der Prozess-Tabelle.
Ich habe nicht gesehen, dieses Problem für eine lange Weile also habe nicht geprüft, um zu sehen, was der parent-Prozess besteht in diesem Szenario. Die alternative zum töten der parent-Prozess besteht, um das system neu zu starten. 🙂
ps -ax
. Dann habe ich eine vollständige Abmeldung und eine Anmeldung. Noch kein Würfel. Neustart funktioniert. Ich bekomme dieses problem zu manifestieren leicht durch AppCode und Xcode Herzog es aus für die Steuerung.Ich musste nur mir das passieren: ich war immer die Fehler nur an meinem Gerät und den simulator gut funktioniert. Ich endete mit reset an meinem Gerät und der Fehler ging Weg.
Ich bin mit diesem problem sehr oft in letzter Zeit. Was würde verhindern, dass dies geschieht? Abmelden und in der das problem behebt.. aber es ist ärgerlich, so zu tun jeder so oft.
EDIT:
Fand ich die Ursache. Ich hatte einen Fehler in ApplicationWillTerminate Methode. Also wenn ich auf stop-Taste auf Xcode-Fenster, app konnte nicht richtig beendet, und fing an zu hängen.
überprüfen Sie die Aktivitätsanzeige, um zu sehen, wenn Ihre app auf der Liste. sofort beenden, wenn möglich.
Wenn Sie finden, Ihr problem wird durch zombie-Prozesse:
(wie in der früheren Kommentar https://stackoverflow.com/a/8104400/464289) und wollen einfach nur, um das problem sofort lösen, können Sie ohne Neustart oder töten alles. Nur benennen Sie Ihr Projekt Ziel-executable:
Einfach!
Gut, keine Antworten, aber zumindest eine weitere test zu machen. Öffnen Sie das Terminal und führen diesen Befehl: "ps-Ael | grep-Z". Wenn Sie zwei Einträge, einen "(clang)" und die anderen Ihrer app oder Ihres Unternehmens name, du bist abgespritzt - Neustart.
Wenn Sie ein Entwickler sind, geben Sie einen kurzen bug und sagen Apple, wie absolut ärgerlich, dass ein reboot ist, und erwähnen, Sie können dup diesen bug zu "rdar://10401934", die ich gerade eingegeben haben.
David
Zurücksetzen der iOS-Simulator den Fehler behoben für mich. Obwohl dies wird entfernen Sie alle Apps, die Sie haben in den Simulator, es behebt das problem ohne Neustart der Maschine.
Setzen Sie Ihr iOS-Simulator, indem Sie Folgendes tun:
1) Gehen Sie zu den "iOS Simulator" - Menü neben dem Apfel () logo auf der weit Links auf dem Hauptbildschirm.
2) Wählen Sie "Zurücksetzen-Inhalte und Einstellungen...".
3) Lesen Sie die Popup-Nachricht und, wenn Sie Zustimmen, klicken Sie auf "Reset" klicken Sie andernfalls auf "nicht Reset".
Hatte ich das problem @jyap erwähnt mit zombie-Prozesse. Der einzige Weg, um Sie zu löschen war, neu zu starten. Jedoch bemerkte ich, dass meine Freunde am selben Projekt arbeiten würde erhalten das gleiche Problem, aber töten konnte der simulator ohne ein zombie-Prozess. Ich völlig Xcode deinstalliert und re-installiert es, und während ich immer noch den Fehler, es nicht schaffen, zombie-Prozesse, so dass ich nicht neu starten müssen.
Bevor ich das Tat, ich war mit diesem wirklich hässlichen workaround: ändern Sie Ihre app-ID und starten Sie erneut. Sie am Ende mit junk-Kopien der app im simulator, aber Sie können aus dem Neustart für eine Weile.
Dieser Fehler passiert mir sehr viel, fast jedes mal, wenn ich die app testen im Simulator, zwingt mich zum Neustart.
Hier ist eine Problemumgehung, wenn Sie wollen, um arbeiten zu können:
YES
.Dies bedeutet, dass, wenn Sie drücken Sie die home-Taste in den simulator oder beenden Sie den simulator, die app nicht hängen.
Vergessen Sie nicht, ändern Sie diese Einstellung wieder vor der Verteilung! Legen Sie es auf Ihrem release-Checkliste 🙂
Wenn dies geschieht, wenn Sie den Test auf dem iPhone. Einfach starten Sie das Telefon. Von dem, was ich habe gesagt, das Telefon oder simulator, der immer noch glaubt es ist eine Instanz der Anwendung läuft, so dass, wenn es war der Letzte Lauf hatte es nicht richtig beendet wurde, tun, um entweder ein Fehler in Ihrem code oder das Telefon/simulator wollte nur ein Stöhnen.
Bekam ich diese Fehlermeldung beim Debuggen meiner app auf einem iPhone 4. Harte Neustart des iPhone ist mein problem gelöst. (Schalten Sie das iPhone aufgehängt...)
Hatte ich keine zombie-Prozess auf meinem mac und dem Neustart des mac hat das problem nicht lösen.
Vielleicht diese Fehler manifestieren sich sowohl der simulator und die eigentlichen Geräte???
Neu gestartet, das Gerät Funktionierte! 😀
Danke an Alle für die tollen Anregungen.
Hatte ich nur diesen Fehler. Ich habe versucht, einen Neustart auf dem simulator und Xcode aber mein Projekt würde nur funktionieren, wieder nach einem clean und build. Keine Ahnung, was es verursacht hat.
Hatte ich eine rekursive setter, die blies durch den Stapel und tötete meine app in einer Weise, die ich hatte zu power-Booten und mein iPad. Es war nachweislich mit einem fix in den code.
Ich hatte dasselbe problem und löste es, indem Sie die folgenden
Ich habe auch noch eins, weil Xcode konfiguriert ist, verwenden Sie iOS 5.0 und mein Projekt setzt iOS 4.3
Alternative Problemumgehung:
Verlieren Sie alle Daten in der app, da es eigentlich eine neue app, die so weit wie das iPhone simulator ist besorgt. Dies kann oder möglicherweise nicht mehr ärgerlich als Neustart - wollte nur, um ihn der Liste hinzuzufügen.
Die Ursache
Läuft Ihre app im Simulator, bevor die zuvor laufende app komplett gestoppt.
Das Update
Warten, bis Sie die Stop-Taste wieder aktiv werden, bevor Sie erneut ausführen.
(Ich bin mit Xcode 4.2.1. Dieses problem passiert sehr Häufig, wenn ich ein Upgrade auf OS X Lion).
Behoben durch Neustart mein Handy nach dem löschen der app, dann den Wiederaufbau es sauber und läuft wieder. Funktioniert jetzt.
Seltsam.
Kein rebuild oder neu installieren brauchte für mein Problem, und in meinem Fall der Fehler aufgetreten beim ausführen der app auf dem iPhone. Simulator funktioniert gut.
Lösung: Löschen Sie die app aus Handy, tun Sie einen Kaltstart des Telefons, und jetzt ist alles gut.
Passiert eine Menge für mich mit Xcode 4.2.1 auf Lion. Aktualisiert 4.3.2 und es ist nicht mehr passiert. Froh, dass Sie es behoben.
Mike Ash eine Lösung gepostet (Gott segne ihn!) nicht erforderlich ist, ist ein Neustart. Führen Sie einfach:
Ich glaube, dies wird verursacht durch Kraft-beenden Sie Ihre app auf dem iPhone vor drücken der stop-Taste in Xcode. Manchmal, wenn Sie drücken Sie die stop-Taste in Xcode, dann braucht es mehr Zeit, um die app beenden, wenn es aufgehängt. Aber nur Geduld, es wird schließlich beenden Sie die meiste Zeit.
Können Sie alloc variable in der Funktion oder tab. Es wird dealloc wenn Ihre Funktion oder tab verlassen.
So müssen Sie declarate es member-variable oder Globale variable.
Wurde ich immer diese Fehlermeldung die ganze Zeit, bis ich aufgehört Vertrauen in die "Stop" - Taste im Dialogfeld Ausführen. Jetzt, dass ich immer auf beenden in der Symbolleiste, bevor Sie versuchen zu laufen, ich habe noch Probleme bei der zombie-Prozesse.
Oh my - ich habe versucht, wie oben und in anderen Beiträgen. Re-Xcode installiert, rebootet mein Rechner, kopiert die fehlenden Dateien in die richtigen Ordner... Schließlich habe ich gesichert, mein iphone, wischte es auf und restauriert es und es funktionierte!
Ich denke, was kann die Ursache aus der Lektüre rund um das trennen war mein iphone weiß es wurde ausgeführt, mit performance-tools, die den Fang leckt. Oder so etwas ähnliches.
Aaaah, großen Seufzer der Erleichterung.
In den meisten schlechtesten Zustand Zurücksetzen-Inhalte und-Einstellung von iOS-Simulater, und die meiste Zeit in meinem Fall, beenden XCode zusammen mit simulator, immer Arbeit für mich mit XCode4.6 (Häufig Holen Sie sich gehängt)
Ich konfrontiert diese Art von Problem in meinem Fall hier ist, was ich Tat
In den meisten Fällen habe ich es ausgeführt bei Schritt 6 Extremfall musste ich neu starten meine Maschine.
Dieser Fehler in älteren Versionen des iOS-Simulator, weil ältere Instanzen für einen Auftrag in einem anderen Gerät Herunterfahren könnte kollidieren mit der neuen Instanz.
iOS 6.0 und höher, sollten Sie nicht Probleme wie diese, weil iOS 6.0 eingeführt, die Verwendung von bootstrap-Teilmengen und iOS 7.0 eingeführt, die Verwendung einer speziellen bootstrap-server (launchd_sim), die völlig isoliert von der host-bootstrap-server.
Wenn Sie tests ausführen von der Befehlszeile aus, (mit
xcodebuild test
), stellen Sie sicher, dass der simulator das Gerät entspricht, erwarten Sie, dass zum ausführen des tests auf.Ihnen laufen könnte Befehlszeile tests mit iPhone 5. Wenn Sie schon mit der iPhone 6 in XCode ad führen Sie dann den Befehl line-tests, manchmal das iPhone 6 wird bleiben, und Sie müssen manuell wählen Sie die iPhone 5-Gerät, und führen Sie die tests erneut aus.