iOS 11 + Xcode 9中的refreshPreferences HangTracerEnabled / HangTracerDuration消息是什么意思?

20

在升级到iOS 11后,在iPhone上运行应用程序时,我在Xcode控制台中收到了以下消息:

SibDiet[924:111682] refreshPreferences: HangTracerEnabled: 0
SibDiet[924:111682] refreshPreferences: HangTracerDuration: 500
SibDiet[924:111682] refreshPreferences: ActivationLoggingEnabled: 0 ActivationLoggingTaskedOffByDA:0

现在我在每个模拟器和应用程序中都收到这个消息。

我该如何解决这个问题?

3个回答

22

您可以通过单击目标的左键,并接下来选择编辑方案,来隐藏此消息。

hide

在“环境变量”部分中,创建一个名为OS_ACTIVITY_MODE的变量,并将值设置为disable,如下图所示。

enter image description here


6
谢谢,还可以描述一下这条信息的含义吗? - Mudriy Ilya

7

目前还没有数据表明你需要对这种内部调试器状态的喷发做出响应。顺便说一句,这些信息在开发物理设备时也会出现,而不仅仅是在模拟器上。

禁用Xcode环境变量OS_ACTIVITY_MODE的先前回答将停止所有此类内部系统消息,但不幸的是,它会导致关闭ObjC中NSLog()调用的控制台日志记录。我没有检查,但它可能还会禁用Swift print() 日志记录。

Xcode团队应该真正区分禁用系统日志记录和用户日志记录!


1
是的,它把我的孩子和他们的洗澡水一起扔了。 - Bill Cheswick
不!设置 OS_ACTIVITY_MODE 为禁用并不能禁用 print() 日志记录。 - Suryakant Sharma

1

看起来(刷新偏好设置...)问题在多个平台上出现。

我通过在XCode中定义OS_ACTIVITY_MODEdisable并在以下操作系统上进行修复:High Sierra(10.13.1) XCode 9.1iOS 11.0.3,具体步骤如下:

Product > Scheme > Edit Scheme > Arguments > Environment Variables

添加OS_ACTIVITY_MODE disable

schema editor (fragment)

注意:执行此操作后,NSLog可能无法正常工作。
类似的问题已在以下问题中报告:
如何修复Xcode 9中的refreshPreferences消息[duplicate]

1
是的,正如所述,这将关闭系统内部消息的控制台日志记录,但代价是禁用NSLog和Print。在许多情况下,这对于忽略系统中的垃圾或噪音来说是太高的代价。 - BlueskyMed
谢谢,我同意。让苹果提供一个全面的解决方案吧...无论如何,我会更深入地研究这个问题,NSLog也让我很恼火。 - matrix3003

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接