Frage iOS 10 druckt keine NSLogs


Nichts druckt von NSLog auf Xcode 8.0 beta (8S128d). printf ist unverändert

Hier ist mein Code:

NSLog(@"hello from NSLog");
printf("hello from printf");

Hier ist die Ausgabe auf iOS 9 Simulator:

2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog
hello from printf

Hier ist die Ausgabe auf iOS 10 Simulator:

hello from printf

74
2018-06-17 16:49


Ursprung


Antworten:


Es könnte sein, dass Sie die Eigenschaft "OS_ACTIVITY_MODE" hinzugefügt haben: "disable" in den Scheme-Umgebungsvariablen (um die OS-Ausgabe des Simulators auszublenden) und haben sie vergessen und laufen jetzt auf einem echten Gerät.

In Xcode 8:

Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables

Nur hinzufügen OS_ACTIVITY_MODE und überprüfe es (füge keinen Wert hinzu)

enter image description here

enter image description here

Zusammenfassung: Dies ist ein Fehler von Xcode 8 + iOS10, wir können es auf diese Weise lösen:

  • Wenn Sie den Simulator verwenden, fügen Sie den Namen "OS_ACTIVITY_MODE" und den Wert "disable" hinzu und überprüfen Sie es.

  • Fügen Sie auf einem echten Gerät nur "OS_ACTIVITY_MODE" hinzu und überprüfen Sie es (fügen Sie den Wert nicht hinzu). Sie werden den NSLog in der Xcode8-Konsole sehen.


213
2017-09-15 05:19



Wenn Sie das überprüfen Xcode 8 Beta Release NotesDu wirst feststellen, dass es sagt:

Beim Debuggen einer App, die auf Simulator ausgeführt wird, sind Protokolle möglicherweise nicht in der Konsole sichtbar.   Problemumgehung: Verwenden Sie den Befehl + / in Simulator.app, um das Systemprotokoll in der Konsolenanwendung zu öffnen und NSLogs anzuzeigen. (26457535)


26
2018-06-17 18:36



Der NSLog oder Druck wird tatsächlich ausgeführt, ist aber unter vielen anderen Konsolen-Debug-Ausgaben versteckt, um dieses Problem zu lösen Öffne Xcode8:

Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables

füge "OS_ACTIVITY_MODE" hinzu und setze den Wert auf "disable" und überprüfe es.

Klicken Sie auf Schließen

xcode9

füge "OS_ACTIVITY_MODE" hinzu und setze den Wert auf "default" und überprüfe es.

enter image description here enter image description here


9
2017-09-15 20:06



Stellen Sie außerdem sicher, dass die Konsole in Xcode tatsächlich sichtbar ist (d. H., Stellen Sie sicher, dass das Symbol auf der rechten Seite blau hervorgehoben ist, wie in der Abbildung unten dargestellt). Nachdem ich Xcode aktualisiert habe, versteckte ich die Konsole und zeigte mir nur die Variablenansicht. So sah es aus NSLog() funktionierte nicht richtig, während es tatsächlich richtig funktionierte, konnte ich die Ausgabe nicht sehen.

enter image description here


6
2018-04-20 02:39



Ich kann weder die NSLog-Ausgabe in einem echten iOS 10-Gerät sehen. Wenn Sie echte Geräte verwenden, können Sie das Gerätefenster über Xcode (Umschalt + Befehl + 2) öffnen und Geräteprotokolle anzeigen. Es ist jedoch schwierig, die Protokolle Ihrer App einzusehen, da die Konsole Protokolle vom System und von allen Anwendungen anzeigt.

(Ich benutze Xcode 7, also ist es vielleicht nicht das Problem von Xcode, aber das Problem mit iOS 10)


5
2018-06-23 01:17



Hmmm ... scheint die Eigenschaft "OS_ACTIVITY_MODE" zu sein: "disable" VERHINDERT, dass NSlog im Xcode 9-Log erscheint.

Durch das Deaktivieren dieses Werts in meinem Schema wurden meine Protokolle wiederhergestellt.


5
2017-10-03 19:19



Ich benutze Xcode 8, also habe ich auch das selbe Problem festgestellt. Und ich habe dieses Problem gelöst, indem ich hinzugefügt habe value = disable auf dem Simulator, aber auf einer echten Maschine füge ich keinen Wert hinzu.


2
2017-09-23 06:01