iOS 10:“如果我们处于真正的提交前处理程序中,由于CA限制,我们实际上无法添加任何新的防护”

我有时会在运行我的应用程序时在Xcode 8b3的日志中看到这条消息,一切似乎都正常,但是我想知道这是从哪里来的。 Google根本没有帮助。

在你的Xcode中:

  • 点击停止button旁边的活动scheme名称
  • 点击Edit Scheme ….
  • 在运行(debugging)中select参数选项卡
  • 在环境variables中单击+
  • 添加variables:OS_ACTIVITY_MODE =禁用

截图

它来自+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]通过os_log API。 它不依赖于您正在使用的其他组件/框架(仅从UIKit) – 它在干净的单一视图应用程序项目中重现了改变界面方向。

这个方法由两部分组成:

  1. 将通过预提交处理程序添加到处理程序列表;
  2. 做一些工作,这取决于当前的有限状态机状态。

当第二部分失败(看起来像被禁止的转换)时,它将上面的消息打印到错误日志中。 但是,我认为这个问题不是致命的:在这个方法中有两个额外的断言情况,这将导致debugging崩溃。

看来雷达是我们能做的最好的。

尝试将下列内容放在run(debug)的scheme的environment variables run(debug)

 OS_ACTIVITY_MODE = disable 

“IOS_ACTIVITY_MODE =禁用”答案closures所有日志logging! 只要closureslogging视图,如果你不想看到日志。 真是荒谬的回答,惊人的是它有这么多票! 没有任何处理实际的消息。

我们大量使用核心数据的应用程序正常工作,这些消息和其他消息在最后一次Xcode更新之后开始出现。 伤心的是,苹果无法解决这类问题。

我们可以用这种方法将其静音(设备和模拟器需要不同的值):

添加名称OS_ACTIVITY_MODE和值${DEBUG_ACTIVITY_MODE}并检查它(在产品 – >计划 – >编辑计划 – >运行 – >参数 – >环境)。

在这里输入图像说明

添加用户定义的设置DEBUG_ACTIVITY_MODE ,然后添加Any iOS Simulator SDK Debug ,并将其值设置为disable (在项目 – >生成设置 – > + – >用户定义的设置)

在这里输入图像说明

要解决,我从模拟器中删除了应用程序。

我也先跑了干净

我不认为任何与方向有关的事情触发它。 在这个症状开始之前,最大的改变是Swift框架开始在工作线程上调用NSLog而不是主线程。

 OS_ACTIVITY_MODE = disable 

这也将禁用在真实设备中进行debugging的能力(从此以后没有从真实设备输出控制台)。