Gibt es Absturzprotokolle, die vom iPhone Simulator erstellt wurden?
Der Simulator stürzt häufig ab, hinterlässt jedoch keine Spuren in der Konsole. Das Absturzprotokoll ist hilfreich.
Gibt es Absturzprotokolle, die vom iPhone Simulator erstellt wurden?
Der Simulator stürzt häufig ab, hinterlässt jedoch keine Spuren in der Konsole. Das Absturzprotokoll ist hilfreich.
Antworten:
Die Konsole zeigt die NSLog()
Ausgabe einer App an, die im Simulator ausgeführt wird. Die Absturzprotokolle werden in einer Datei gespeichert.
Ich habe einige in meinem Home-Verzeichnis unter gefunden
~/Library/Logs/DiagnosticReports/
Sie haben eine Dateierweiterung von .crash
Ich habe noch nicht herausgefunden, wie sie generiert werden können, selbst wenn der Debugger das EXC_BAD_ACCESS
Signal erfasst .
Aktualisieren
Derzeit (OSX 10.11.6) meldet sich die .crash-Anmeldung an ~/Library/Logs/DiagnosticReports
, wenn der Emulator selbst abstürzt . Protokolle für einen Absturz einer App (aber das Emulatorgerät läuft noch einwandfrei) befinden sich in:
~ / Library / Logs / CoreSimulator
Pro Absturz gibt es einen Unterordner mit einer eindeutigen ID. Nach Datum sortieren, sodass Ihr letzter Absturz der erste Unterordner ist. Beginnen Sie mit einem Blick auf stderr.log
und system.log
.
Auch direkt unter CoreSimulator
, siehe CoreSimulator.log
und Simulator.log
.
~/Library/Logs/DiagnosticReports/
Ich bin mir ziemlich sicher, dass Sie dies in der OS X Console-App unter Dienstprogramme sehen können. Wenn ich mich jedoch irre, stimmen Sie mich unbedingt ab, damit ich dies lösche.
AKTUALISIEREN:
Insbesondere (ab OSX 10.11.6),
Wenn eine App auf dem Emulator abstürzt, wird ein Unterordner (mit einer eindeutigen ID) hinzugefügt zu:
~ / Library / Logs / CoreSimulator
Beginnen Sie innerhalb von stderr.log
und system.log
.
Wenn der Emulator selbst abstürzt, wird ein Unterordner hinzugefügt zu:
~ / Library / Logs / DiagnosticReports
Verwechseln Sie diesen Weg nicht mit
/ Bibliothek / Protokolle
(fehlt ~
am Anfang), die verschiedene Berichte über Ihren Mac enthält.
Hier ist etwas, das in einem speziellen Fall für mich funktioniert hat ... Meine App stürzte mit SIGKILL ab, als sie beendet wurde. Ich würde die Ausnahme für ein paar Sekunden in main.m sehen, und dann würde die App beendet sein - also keine Chance, die Rückverfolgung zu erhalten.
Ich habe viel nach „Wo speichert der Simulator seine Absturzprotokolle?“ Gesucht und nie eine Antwort gefunden. Der folgende Trick war jedoch sehr praktisch und ich konnte das Absturzprotokoll sofort abrufen:
Öffnen Sie grundsätzlich /Applications/Utilities/CrashReporterPrefs.app und ändern Sie die Einstellung in "Developer". Dies führt dazu, dass CrashReporter nach dem Absturz Ihrer App ein Popup mit dem Absturzprotokoll anzeigt.
Ich habe dies im Abschnitt "Anzeigen der iOS-Simulatorkonsole und der Absturzprotokolle" in diesem Dokument von Apple gefunden: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. html
Das ist viel zuverlässiger. In nur wenigen Schritten konnte ich die Quellzeilennummer und den Methodennamen finden:
Die Absturz-Absturzprotokolle werden unter ~ / Library / Logs / CrashReporter angezeigt.
Wenn Xcode Absturzprotokolle von einem verbundenen Gerät erhält, werden diese in Unterordnern von ~ / Library / Logs / CrashReporter / MobileDevice gespeichert