当运行我的应用程序时,我有时会在Xcode 8b3的日志中得到这条消息,一切似乎都正常工作,但我想知道这是从哪里来的。谷歌一点用都没有。


当前回答

尝试在run(debug)下的方案的环境变量中放入以下内容

OS_ACTIVITY_MODE = disable

其他回答

尝试在run(debug)下的方案的环境变量中放入以下内容

OS_ACTIVITY_MODE = disable

它来自+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:] via os_log API。它不依赖于你正在使用的其他组件/框架(只来自UIKit) -它在改变界面方向时在干净的单视图应用程序项目中再现。

该方法由两部分组成:

将传递的预提交处理程序添加到处理程序列表; 做一些功,这取决于当前有限状态机的状态。

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

看来我们只能用雷达了。

为了解决这个问题,我从模拟器中删除了应用程序。

Clean也是我先跑的。

我不认为这是和迎新工作有关的。在出现这种症状之前,最大的变化是Swift框架开始在工作线程而不是主线程上调用NSLog。

我们可以这样静音(设备和模拟器需要不同的值):

在Product -> Scheme -> Edit Scheme -> Run -> Arguments -> Environment中添加“OS_ACTIVITY_MODE”和“${DEBUG_ACTIVITY_MODE}”并进行检查。

添加自定义设置DEBUG_ACTIVITY_MODE,然后添加任何iOS模拟器SDK用于调试,并将其值设置为禁用(在项目->构建设置-> + ->自定义设置中)

在你的Xcode:

单击“停止”按钮旁边的活动方案名称 单击Edit Scheme.... 在运行(调试)中选择参数选项卡 在环境变量中单击+ OS_ACTIVITY_MODE = disable