【问题标题】:refreshPreferences HangTracerEnabled / HangTracerDuration messages in iOS 11 + Xcode 9iOS 11 + Xcode 9 中的 refreshPreferences HangTracerEnabled / HangTracerDuration 消息
【发布时间】:2018-03-05 15:59:16
【问题描述】:

更新到 iOS 11 后,在 iPhone 中运行应用程序后,我在 Xcode 控制台中收到此消息:

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

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

我该如何解决这个问题?

【问题讨论】:

    标签: ios swift xcode9


    【解决方案1】:

    您可以通过在目标上单击鼠标左键来隐藏此消息,然后单击Edit Scheme

    之后在Environment Variables 部分创建名称为OS_ACTIVITY_MODE 和值disable 的变量,如下图所示。

    【讨论】:

    • 谢谢,你能描述一下这条消息的含义吗?
    【解决方案2】:

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

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

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

    【讨论】:

    • 是的,它会把我的宝宝和洗澡水一起扔出去。
    • 不!将OS_ACTIVITY_MODE 设置为禁用不会禁用print() 日志记录
    【解决方案3】:

    (刷新首选项...)问题似乎出现在多个平台上。

    我设法在 High Sierra(10.13.1) XCode 9.1iOS 11.0.3 上通过定义 来修复它OS_ACTIVITY_MODEdisable 通过进入 XCode

    产品 > 方案 > 编辑方案 > 参数 > 环境变量

    添加 OS_ACTIVITY_MODE 禁用

    注意:执行此操作后 NSLog 可能无法正常工作。

    问题中报告了类似问题:

    如何修复 Xcode 9 中的 refreshPreferences 消息 [重复]

    【讨论】:

    • 是的,如前所述,这将关闭来自系统的内部消息的控制台日志记录,但代价是禁用 NSLog 和 Print。在许多情况下,忽略系统中的垃圾或噪音的代价太高了。
    • 谢谢,我同意。让Apple给出一个全面的解决方案......无论如何我会更多地研究这个,NSLog也让我生气。
    猜你喜欢
    • 1970-01-01
    • 2018-03-01
    • 2018-03-25
    • 2018-03-04
    • 2018-01-04
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 2018-04-28
    相关资源
    最近更新 更多