Wenn Sie den Xcode 8+ verwenden und ein neues leeres Projekt erstellen, werden beim Ausführen der Anwendung die folgenden Protokolle angezeigt:
2016-06-13 16:33:34.406093 TestiOS10[8209:100611] bundleid: com.appc.TestiOS10, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-06-13 16:33:34.406323 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.409564 TestiOS10[8209:100611] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.504117 TestiOS10[8209:100607] Created DB, header sequence number = 248
2016-06-13 16:33:34.548023 TestiOS10[8209:100607] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-06-13 16:33:34.568458 TestiOS10[8209:100608] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
Vielleicht hat jemand bereits eine Konfiguration dafür gefunden?
Antworten:
Versuche dies:
1- Öffnen Sie im Xcode-Menü: Produkt> Schema> Schema bearbeiten
2- Auf Ihre Umgebungsvariablen setzen Sie
OS_ACTIVITY_MODE
=disable
quelle
NSLog
s vor einem echten Gerät für mich ...Aufbauend auf dem ursprünglichen Tweet von @rustyshelf und der illustrierten Antwort von iDevzilla ist hier eine Lösung, die das Rauschen des Simulators stummschaltet, ohne die NSLog-Ausgabe vom Gerät zu deaktivieren.
quelle
disable
durchdefault
.OS_ACTIVITY_MODE nicht für mich Arbeit (es kann gewesen sein , weil ich typo'd
disable
wiedisabled
, aber ist das nicht mehr natürlich?!?), Oder zumindest nicht sehr viel von Nachrichten verhindert hat. Hier ist also der eigentliche Umgang mit den Umgebungsvariablen.https://llvm.org/svn/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
So Einstellung
OS_ACTIVITY_DT_MODE
auf „NEIN“ in den Umgebungsvariablen (GUI - Methode in den Schemata erklärt Screenshot in Haupt-Antwort) macht es für mich arbeiten.Was
NSLog
den Speicherplatz für Systemmeldungen, Fehler und Ihr eigenes Debugging angeht: Wahrscheinlich ist ohnehin ein echter Protokollierungsansatz erforderlich, z . B. https://github.com/fpillet/NSLogger .ODER
Trinken Sie die neue Kool-Aid: http://asciiwwdc.com/2016/sessions/721 https://developer.apple.com/videos/play/wwdc2016/721/ Es ist nicht überraschend, dass es nach der Überholung des gesamten Systems einige Probleme gibt Protokollierungs-API.
NACHTRAG
Wie auch immer,
NSLog
ist nur eine Unterlegscheibe:https://developer.apple.com/library/content/releasenotes/Miscellaneous/RN-Foundation-OSX10.12/
Es ist jetzt nur sinnvoll, die Quelle für die andere env-Variable anzugeben. Ein ziemlich unterschiedlicher Ort, diesmal von Apple-Interna. Ich bin mir nicht sicher, warum sie sich überlappen. [Falscher Kommentar zu
NSLog
entfernt][Bearbeitet am 22. September]: Ich frage mich, was "Release" und "Stream" anders machen als "Debug". Nicht genug Quelle.
https://github.com/macosforge/libdispatch/blob/8e63547ea4e5abbfe55c0c3064181c4950a791d3/src/voucher.c
quelle
os_log
informell als das neue Kool Aid.Ein Tweet hatte die Antwort für mich - https://twitter.com/rustyshelf/status/775505191160328194
Um zu verhindern, dass sich der Xcode 8 iOS Simulator wie verrückt protokolliert, setzen Sie eine Umgebungsvariable OS_ACTIVITY_MODE = disable in Ihrem Debug-Schema.
Es funktionierte.
quelle
disable
durchdefault
.Bitte finden Sie die folgenden Schritte.
CMD + <
Run
Option auf der linken Seite.Weitere Informationen finden Sie in der folgenden GIF-Darstellung.
quelle
disable
durchdefault
.Dies ist in Xcode Version 8.0 Beta 2 (8S162m) für mich immer noch nicht behoben, und zusätzliche Protokolle werden auch in der Xcode-Konsole angezeigt** BEARBEITEN 8/1/16: Dies wurde in den Versionshinweisen für Xcode 8 Beta 4 (8S188o) als ein Problem bestätigt, das weiterhin besteht .
Vermutlich wird dies durch die GM-Veröffentlichung behoben. Bis dahin ist Geduld und obwohl nicht ideal, aber eine Problemumgehung, die ich verwende, unten ...
Ähnlich wie bei der vorherigen Antwort muss ich:
Stellen Sie meinen Druckprotokollen ein Sonderzeichen voran (z. B. * oder ^ oder! etc etc)
Verwenden Sie dann das Suchfeld unten rechts im Konsolenbereich, um meine Konsolenprotokolle zu filtern, indem Sie mein ausgewähltes Sonderzeichen eingeben, damit die Konsole meine Druckprotokolle wie vorgesehen anzeigt
quelle
Meine Lösung besteht darin, den Debugger-Befehl und / oder die Protokollnachricht in Haltepunkten zu verwenden.
Ändern Sie die Ausgabe der Konsole von Alle Ausgaben in Debugger- Ausgaben wie
quelle
In Ordung. Es scheint viel Aufregung in diesem Fall zu geben, also gebe ich Ihnen eine Möglichkeit, es beizubehalten, ohne diesen Schema-Trick anzuwenden. Ich werde speziell auf den iOS-Simulator eingehen, dies muss jedoch möglicherweise auch für den TV-Sim angewendet werden, der sich in einem anderen Verzeichnis befindet.
Das Problem, das all diese Dinge verursacht, sind Listen im Xcode-Verzeichnis. Beim Start des Sim wird ein Prozess namens configd_sim gestartet , der die Plists einliest und Debugging-Informationen druckt, wenn die Plists angeben, dass sie protokolliert werden sollen.
Die Plisten befinden sich hier:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Preferences/Logging/Subsystems
Wenn Sie mit einer Beta herumspielen, beachten Sie, dass das Verzeichnis anders sein wird.
In diesem Verzeichnis sehen Sie zahlreiche Listen. Erstellen und führen Sie jetzt Ihre Anwendung aus und beobachten Sie die Protokolle. Sie suchen nach dem Inhalt, dem das Subsystem unmittelbar folgt : part. Es ist der unmittelbar darauf folgende Name, der die entsprechende problematische Liste darstellt.
Ändern Sie von dort aus entweder die Liste, um den Debugging-Schlüssel / -Wert [Level] auszuschalten, bei dem es sich um ein Wörterbuch handelt, das das enthält
"Enable" => "Default"
Schlüssel / Wert enthält ... oder löschen Sie einfach die Liste. Beachten Sie, dass Sie root sein müssen, um eine dieser Aktionen auszuführen, da sie sich in der Xcode-Anwendung befinden.Der
plutil -p
Befehl kann auch für Sie von Nutzen sein. dhDies gab mir eine der problematischen Listen, die enthielten:
{ "DEFAULT-OPTIONS" => { "Level" => { "Enable" => "Default" }}}
Viel Glück :]
quelle
2016-09-23 15:09:21.354686 ProductName[8823:191206][] tcp_connection_start 3 starting
Dies hängt mit einem bekannten Problem bei der Protokollierung zusammen, das in den Xcode 8 Beta-Versionshinweisen enthalten ist (auch von einem Techniker bei WWDC gefragt).
Derzeit ist keine Problemumgehung verfügbar. Sie müssen auf eine neue Version von Xcode warten.
EDIT 7/5/16: Dies ist angeblich ab Xcode 8 Beta 2 behoben:
Versionshinweise zu Xcode 8 Beta 2
quelle
Dies ist in xcode 8.1 (getestete Beta-Version 8.1 (8T46g)) kein Problem mehr . Sie können die
OS_ACTIVITY_MODE
Umgebungsvariable aus Ihrem Schema entfernen .https://developer.apple.com/go/?id=xcode-8.1-beta-rn
quelle
[MC] Reading from private effective user settings.
aus einem leeren neuen Dummy-Projekt. Datei> Neu> Projekt.In Xcode 10 schaltet die
OS_ACTIVITY_MODE
Variable mitdisable
(oderdefault
) Wert auch das aus,NSLog
egal was passiert.Wenn Sie also das Konsolenrauschen, aber nicht Ihre eigenen Protokolle
printf("")
entfernen möchten , können Sie das gute alte anstelle des NSLog ausprobieren, da es nicht vomOS_ACTIVITY_MODE
= betroffen istdisable
.Schauen Sie sich aber besser die neue
os_log
API hier an .quelle
Diese Lösung hat bei mir funktioniert:
⌘
+/
)Dadurch werden alle Debug-Daten und auch Ihre NSLogs ausgegeben.
So filtern Sie nur Ihre NSLog-Anweisungen:
NSLog(@"^ Test Log")
Das sollten Sie bekommen:
quelle