Ich habe meine App auf dem Simulator getestet, als sie beim Klicken auf eine Schaltfläche eines UIAlertView abstürzte. Ich habe dort aufgehört zu debuggen, einige Änderungen am Code vorgenommen und die App erneut erstellt. Wenn ich jetzt die Anwendung ausführe, wird dieser Fehler in der Konsole angezeigt
Com.myApp.debug konnte nicht beim Bootstrap-Server registriert werden. Fehler: unbekannter Fehlercode. Dies bedeutet im Allgemeinen, dass eine andere Instanz dieses Prozesses bereits ausgeführt wurde oder im Debugger hängen bleibt. Das Programm empfing das Signal „SIGABRT“.
Ich habe versucht, die App aus dem Simulator zu entfernen und einen sauberen Build durchzuführen, aber ich erhalte immer noch diesen Fehler, wenn ich versuche, die App auszuführen.
Was muss ich tun, um die App wieder auf meinem Simulator ausführen zu können?
quelle
ps ax | grep SimulatorBridge
Antworten:
Versuchen Sie, den Simulator zu beenden und neu zu starten? Wenn "schlimmer wird schlimmer", können Sie immer versuchen, neu zu starten: Nach meiner Erfahrung sollte dies das Problem beheben.
quelle
Status: Dies wurde erst in Mac OS 10.8 und Xcode 4.4 festgestellt.
tl; dr: Dies kann in zwei Zusammenhängen auftreten: beim Ausführen auf dem Gerät und beim Ausführen auf dem Simulator. Wenn Sie auf dem Gerät ausgeführt werden, scheint das Trennen und erneute Verbinden des Geräts Probleme zu beheben.
Schlug Mike Ash vor
Das funktioniert nicht immer. Tatsächlich hat es bei mir nie funktioniert, aber in einigen Fällen funktioniert es eindeutig. Weiß nur nicht welche Fälle. Es lohnt sich also, es zu versuchen.
Andernfalls besteht die einzige bekannte Möglichkeit, dies zu beheben, darin, den Benutzer launchd neu zu starten. Ein Neustart wird das tun, aber es gibt einen weniger drastischen / schnelleren Weg. Sie müssen einen anderen Administrator erstellen, dies müssen Sie jedoch nur einmal tun. Wenn sich die Dinge verkeilen, melden Sie sich als Sie selbst ab, melden Sie sich als dieser Benutzer an und beenden Sie den Start, der Ihrem Hauptbenutzer gehört, z.
Ersetzen Sie Ihren Hauptbenutzernamen durch
user_id
. Wenn Sie sich erneut anmelden, während Ihr normaler Benutzer Sie wieder in einen normalen Zustand versetzt. Ein bisschen schmerzhaft, aber weniger als ein vollständiger Neustart.Einzelheiten:
Dies ist bei Lion / Xcode 4.2 immer häufiger vorgekommen. (Ich persönlich habe es vor dieser Kombination noch nie gesehen.)
Der Fehler scheint in launchd zu liegen, der den App-Prozess als Kind erbt, wenn der Debugger das Debuggen beendet, ohne ihn zu beenden. Dies wird normalerweise dadurch signalisiert, dass die App ein Zombie wird und den Prozessstatus Z in ps hat.
Das Hauptproblem scheint auf dem Bootstrap-Nameserver zu liegen, der in launchd implementiert ist. Dies (soweit ich es verstehe) ordnet App-IDs Mach-Ports zu. Wenn der Fehler ausgelöst wird, stirbt die App, wird jedoch nicht aus der Nameserver-Zuordnung des Bootstrap-Servers entfernt. Infolgedessen lehnt der Bootstrap-Server die Registrierung einer anderen Instanz der App unter demselben Namen ab.
Es wurde gehofft (siehe die Kommentare), dass das Erzwingen des Starts
wait()
für den Zombie die Dinge reparieren würde, aber das tut es nicht. Es ist nicht der Zombie-Status, der das Kernproblem darstellt (weshalb einige Zombies gutartig sind), sondern der Bootstrap-Nameserver, und es gibt keine bekannte Möglichkeit, dieses Problem zu lösen.Es sieht so aus, als würde der Fehler durch etwas Schlechtes zwischen Xcode, gdb und dem vom Benutzer gestarteten Benutzer ausgelöst. Ich habe den Keil nur wiederholt, indem ich eine App im iPhone-Simulator ausgeführt habe, sie innerhalb von GDB gestoppt habe und dann einen Build ausgeführt und zum iPad-Simulator ausgeführt habe. Es scheint empfindlich auf Schaltersimulatoren zu reagieren (iOS 4.3 / iOS 5, iPad / iPhone). Es kommt nicht immer vor, aber ziemlich häufig, wenn ich viel zwischen Simulatoren wechsle.
Das Töten von launchd, während Sie angemeldet sind, wird Ihre Sitzung vermasseln. Durch das Abmelden und erneutes Anmelden wird der Benutzer nicht getötet. OS X behält den vorhandenen Prozess bei. Ein Neustart wird die Probleme beheben, aber das ist schmerzhaft. Die obigen Anweisungen sind schneller.
Ich habe einen Fehler bei Apple, FWIW, eingereicht. rdar: // 10330930
quelle
Ich habe festgestellt, dass ich dieses Problem mit Lion + Xcode 4.2 habe. Ich habe das Problem auch in Xcode 4.3 erlebt.
Ich habe alle Vorschläge ausprobiert, aber keiner von ihnen hat funktioniert, außer einem vollständigen Neustart.
So stellen Sie fest, ob Sie schnell einen Neustart benötigen.
Listen Sie alle Ihre Zombie-Prozesse auf:
Wenn Ihre App als Zombie-Prozess aufgeführt ist, müssen Sie Ihren Computer neu starten. Die Fehlermeldung lautet "Dies bedeutet im Allgemeinen, dass eine andere Instanz dieses Prozesses bereits ausgeführt wurde oder im Debugger hängen bleibt". Nun, Xcode erkennt diesen Zombie-Prozess, den Sie nicht töten können. Sie können das Problem nur durch einen Neustart des Systems beheben. :(
EDIT, 20120823: Ich habe einige bessere Kenntnisse über Zombie-Prozesse, daher wollte ich diese Antwort aktualisieren. Ein Zombie-Prozess wird erstellt, wenn ein übergeordneter Prozess bei einem beendenden untergeordneten Prozess nicht wait () (Warten, bis der Prozess den Status ändert) aufruft. Sie können "kill" nicht direkt für einen Zombie-Prozess ausführen. Wenn Sie jedoch den übergeordneten Prozess beenden, wird der untergeordnete Zombie-Prozess "geerntet" und aus der Prozesstabelle entfernt.
Ich habe dieses Problem schon lange nicht mehr gesehen und daher nicht überprüft, wie der übergeordnete Prozess in diesem Szenario aussieht. Die Alternative zum Beenden des übergeordneten Prozesses besteht darin, das System neu zu starten. :) :)
quelle
Mir ist gerade Folgendes passiert: Ich habe den Fehler nur auf meinem Gerät erhalten und der Simulator hat einwandfrei funktioniert. Am Ende musste ich mein Gerät zurücksetzen und der Fehler verschwand.
quelle
Ich habe dieses Problem in letzter Zeit sehr oft. Was würde dies verhindern? Das Abmelden und Anmelden behebt das Problem, aber es ist ärgerlich, dies immer wieder zu tun.
BEARBEITEN:
Ich habe gerade die Ursache gefunden. Ich hatte einen Fehler in der ApplicationWillTerminate-Methode. Wenn ich also im Xcode-Fenster auf die Schaltfläche "Stopp" klicke, kann die App nicht ordnungsgemäß beendet werden und hängt.
Überprüfen Sie den Aktivitätsmonitor, um festzustellen, ob Ihre App in der Liste enthalten ist. Wenn möglich erzwingen.
quelle
Wenn Sie feststellen, dass Ihr Problem auf Zombie-Prozesse zurückzuführen ist:
(wie im vorherigen Kommentar https://stackoverflow.com/a/8104400/464289 ) und möchten das Problem sofort beheben, können Sie dies tun, ohne etwas neu zu starten oder zu beenden. Benennen Sie einfach die ausführbare Datei Ihres Projektziels um:Einfach!
quelle
Nun, keine Antworten, aber mindestens ein weiterer Test. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus: "ps-Ael | grep Z". Wenn Sie zwei Einträge erhalten, einen "(clang)" und den anderen Ihren App- oder Firmennamen, werden Sie abgespritzt - starten Sie neu.
Wenn Sie ein Entwickler sind, geben Sie einen kurzen Fehler ein und teilen Sie Apple mit, wie ärgerlich es ist, einen Neustart durchführen zu müssen, und erwähnen Sie, dass dieser Fehler auf "rdar: // 10401934" übertragen werden kann, den ich gerade eingegeben habe.
David
quelle
Das Zurücksetzen des iOS-Simulators hat den Fehler für mich behoben. Dadurch werden zwar alle in Simulator vorhandenen Apps entfernt, das Problem wird jedoch behoben, ohne dass der Computer neu gestartet werden muss.
Sie können Ihren iOS-Simulator wie folgt zurücksetzen:
1) Gehen Sie zum Menü "iOS Simulator" neben dem Apple () -Logo ganz links auf Ihrem Hauptbildschirm.
2) Wählen Sie "Inhalt und Einstellungen zurücksetzen ...".
3) Lesen Sie die Pop-Nachricht und klicken Sie auf "Zurücksetzen", wenn Sie damit einverstanden sind. Klicken Sie auf "Nicht zurücksetzen".
quelle
quelle
Ich hatte das Problem, das @jyap mit Zombie-Prozessen erwähnt. Die einzige Möglichkeit, sie zu löschen, war ein Neustart. Ich bemerkte jedoch, dass meine Freunde, die an demselben Projekt arbeiteten, dasselbe Problem hatten, aber den Simulator töten konnten, ohne einen Zombie-Prozess zu erstellen. Ich habe Xcode vollständig deinstalliert und neu installiert. Obwohl ich immer noch den Fehler erhalte, werden keine Zombie-Prozesse erstellt, sodass ich nicht neu starten muss.
Vorher habe ich diese wirklich hässliche Problemumgehung verwendet: Ändern Sie Ihre App-ID und führen Sie sie erneut aus. Sie erhalten Junk-Kopien der App im Simulator, können den Neustart jedoch für eine Weile verschieben.
quelle
Dieser Fehler passiert mir sehr oft, fast jedes Mal, wenn ich die App im Simulator teste, was mich zum Neustart zwingt.
Hier ist eine Problemumgehung, wenn Sie etwas erledigen möchten:
YES
.Dies bedeutet, dass die App nicht hängt, wenn Sie die Home-Taste im Simulator drücken oder den Simulator beenden.
Vergessen Sie nicht, diese Einstellung vor der Verteilung wieder zu ändern! Setzen Sie es auf Ihre Release-Checkliste :)
quelle
Wenn dies beim Testen auf dem iPhone passiert. Starten Sie einfach das Telefon neu. Nach dem, was mir gesagt wurde, glaubt das Telefon oder der Simulator immer noch, dass eine Instanz der App ausgeführt wird. Als sie zuletzt ausgeführt wurde, wurde sie nicht korrekt beendet. Dies ist entweder auf einen Fehler in Ihrem Code zurückzuführen, oder das Telefon / der Simulator wollte nur eine Stöhnen.
quelle
Ich habe diesen Fehler beim Debuggen meiner App auf einem iPhone 4 erhalten. Ein schwieriger Neustart des iPhone hat mein Problem gelöst. (Das iPhone ausschalten hing ...)
Ich hatte keinen Zombie-Prozess auf meinem Mac und ein Neustart des Mac löste das Problem nicht.
Vielleicht kann sich dieser Fehler sowohl auf dem Simulator als auch auf den tatsächlichen Geräten manifestieren?
quelle
Gerät neu gestartet, funktioniert! : D.
Vielen Dank an alle für die tollen Vorschläge.
quelle
Ich hatte gerade diesen Fehler. Ich habe versucht, den Simulator und Xcode neu zu starten, aber mein Projekt würde erst nach einer Bereinigung und Erstellung wieder funktionieren. Keine Ahnung, was es verursacht hat.
quelle
Ich hatte einen rekursiven Setter, der durch den Stapel blies und meine App so tötete, dass ich mein iPad mit Strom starten musste. Es war mit einem Fix im Code nachweisbar.
quelle
Ich hatte das gleiche Problem und löste es wie folgt
Ich habe noch eine Sache getan, weil Xcode für die Verwendung von iOS 5.0 konfiguriert ist und mein Projekt iOS 4.3 verwendet
quelle
Alternative Problemumgehung:
Sie verlieren alle Daten in der App, da es sich tatsächlich um eine neue App handelt, die für den iPhone-Simulator ausgeführt wird. Dies kann ärgerlicher sein oder auch nicht als ein Neustart - ich wollte es nur zur Liste hinzufügen.
quelle
Die Ursache
Ausführen Ihrer App im Simulator, bevor die zuvor ausgeführte App vollständig gestoppt wurde.
Die Reparatur
Warten Sie, bis die Stopp-Schaltfläche wieder aktiv wird, bevor Sie sie erneut ausführen.
(Ich verwende Xcode 4.2.1. Dieses Problem trat sehr häufig auf, als ich auf OS X Lion aktualisiert habe.)
quelle
Es wurde behoben, indem mein Telefon nach dem Löschen der App neu gestartet und anschließend sauber neu erstellt und erneut ausgeführt wurde. Funktioniert jetzt gut.
Seltsam.
quelle
Für mein Problem ist keine Neuerstellung oder Neuinstallation erforderlich. In meinem Fall trat der Fehler beim Versuch auf, die App auf dem iPhone auszuführen. Simulator hat gut funktioniert.
Lösung: Löschen Sie die App vom Telefon, führen Sie einen Kaltstart des Telefons durch und jetzt ist alles in Ordnung.
quelle
Mit Xcode 4.2.1 auf Lion ist mir viel passiert. Auf 4.3.2 aktualisiert und es passiert nicht mehr. Ich bin froh, dass sie es repariert haben.
quelle
Mike Ash hat eine Lösung veröffentlicht (Gott segne ihn!), Die keinen Neustart erfordert. Renn einfach:
quelle
Ich denke, dies wird durch das erzwungene Beenden Ihrer App auf dem iPhone vor dem Drücken der Stopp-Taste in Xcode verursacht. Wenn Sie in Xcode die Stopp-Taste drücken, dauert es manchmal länger, die App zu beenden, wenn sie hängen bleibt. Aber sei einfach geduldig, es wird irgendwann die meiste Zeit aufhören.
quelle
Sie können Variablen in Funktion oder Registerkarte zuweisen. Die Zuordnung wird aufgehoben, wenn Ihre Funktion oder Registerkarte beendet wird. Sie müssen es also als Mitgliedsvariable oder globale Variable deklarieren.
quelle
Ich habe die ganze Zeit diesen Fehler erhalten, bis ich aufgehört habe, der Schaltfläche "Stop" im Dialogfeld "Ausführen" zu vertrauen. Jetzt, da ich in der Symbolleiste immer auf Stopp drücke, bevor ich versuche auszuführen, muss ich noch auf Zombie-Prozesse stoßen.
quelle
Oh mein Gott - ich habe ALLES versucht, was oben und in anderen Beiträgen aufgeführt ist. Xcode neu installiert, mein Computer neu gestartet, alle fehlenden Dateien in die richtigen Ordner kopiert ... Schließlich habe ich mein iPhone gesichert, es gelöscht und wiederhergestellt, und es hat funktioniert!
Ich denke, was die Ursache für das Lesen in und um dieses war, war das Trennen meines iPhone White, das mit Leistungstools lief, die Lecks auffingen. Oder so etwas.
Aaaah, großer Seufzer der Erleichterung.
quelle
Im schlimmsten Fall: Das Zurücksetzen von Inhalten und Einstellungen von iOS Simulater und in meinem Fall das Beenden von XCode zusammen mit dem Simulator funktioniert bei mir immer mit XCode4.6 (das häufig hängen bleibt).
quelle
Ich habe mich in meinem Fall einmal mit dieser Art von Problem konfrontiert. Hier ist, was ich getan habe
In den meisten Fällen habe ich es in Schritt 6 zum Laufen gebracht. In extremen Fällen musste ich meinen Computer neu starten.
quelle
Dieser Fehler trat früher in älteren Versionen des iOS-Simulators auf, da ältere Instanzen eines Jobs auf einem anderen Gerät, das heruntergefahren wurde, mit der neuen Instanz kollidieren konnten.
Für iOS 6.0 und höher sollten solche Probleme nicht auftreten, da iOS 6.0 die Verwendung von Bootstrap-Teilmengen eingeführt hat und iOS 7.0 die Verwendung eines dedizierten Bootstrap-Servers (launchd_sim) eingeführt hat, der vollständig vom Bootstrap-Server des Hosts isoliert ist.
quelle