iOS 10不打印NSLog
Xcode 8.0 beta(8S128d)上的NSLog
没有打印。 printf
不变
这是我的代码:
NSLog(@"hello from NSLog"); printf("hello from printf");
以下是iOS 9模拟器上的输出:
2016-06-17 09:49:10.887 calmapp-dev[28517:567025] hello from NSLog hello from printf
以下是iOS 10模拟器上的输出:
hello from printf
可能是因为在Scheme环境variables中添加了属性“OS_ACTIVITY_MODE”:“disable”(为了隐藏模拟器的OS输出)而忘了它,现在正在真实的设备上运行。
在Xcode 8中:
Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables
只添加OS_ACTIVITY_MODE
并检查它(不要添加一个值)
总结:这是Xcode 8 + iOS10的一个bug,我们可以这样解决:
-
当使用模拟器时,添加名称“OS_ACTIVITY_MODE”和值“禁用”并检查它。
-
在真实设备上时,只能添加“OS_ACTIVITY_MODE”并检查它(不要添加值)。 您将在Xcode8控制台中看到NSLog。
如果您检查Xcode 8 beta发行说明 ,您会发现它说:
debugging在Simulator上运行的应用程序时,日志可能在控制台中不可见。 解决方法:使用命令+ /在Simulator.app中打开控制台应用程序中的系统日志以查看NSLog。 (26457535)
NSlog或打印实际上是执行,但隐藏在许多其他控制台debugging输出,以解决这个问题Open Xcode8:
Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment Variables
添加“OS_ACTIVITY_MODE”并将值设置为“禁用”并检查它。
点击closures
我真的不能在真正的iOS 10设备中看到NSLog输出。 如果您使用的是真实设备,则可以从Xcode(Shift + Command + 2)中打开设备窗口并查看设备日志,但由于控制台显示来自系统和所有应用程序的日志,因此很难查看应用程序的日志。
(我使用Xcode 7,所以它可能不是Xcode的问题,但iOS 10的问题)
嗯…它看起来像属性“OS_ACTIVITY_MODE”:“禁用”阻止NSlog出现在Xcode 9日志。
取消选中我的scheme中的这个值恢复了我的日志。
另外,确保控制台在Xcode中实际上是可见的(例如,确保右侧的图标以蓝色突出显示,如下图所示)。 升级Xcode后,它隐藏控制台,并显示我只是variables视图。 这使得它看起来像NSLog()
不能正常工作,而它确实工作正确,我只是看不到输出。
我使用Xcode 8,所以我也遇到了同样的问题。 我通过在模拟器上添加value = disable
来解决了这个问题,但是在真正的机器上我没有增加价值。
接受的答案最初给了我一种显示NSLog
消息的输出的方式,但是在升级到Xcode 9.1 + iOS 11.1之后,它不再有效。 不过,我可以通过启用模拟器来使用控制台应用程序再次显示debugging消息( 请参阅卢卡斯的答案 )。
在控制台应用程序中,我select了Include Debug Messages
Product -> Scheme.
下的Include Debug Messages
Product -> Scheme.
我也不得不取消selectInclude Info Messages
这样控制台就不会被系统消息所淹没。
- Xcode 6进程启动失败:超时尝试启动应用程序
- shouldAutorotateToInterfaceOrientation不在iOS 6中调用
- 用button自定义MKAnnotation标注泡泡
- 为什么NSDateFormatter在巴西时区为19/10/2014返回null?
- XCODE 7.1 Swift 2 Interface Builder文件中的未知类
- Google analytics 3.08 IOS idfa class missing,不会收集idfa
- 不在视图控制器中时如何呈现UIAlertController?
- 如何在Xcode 6及更高版本中“删除派生数据”?
- iOS Prefix.pch最佳做法