iOS 10:“ [App],如果我们处于真正的预提交处理程序中,则由于CA限制,我们实际上无法添加任何新的隔离区”


389

有时,在运行我的应用程序时,我会在Xcode 8b3的日志中收到此消息,似乎一切正常,但是我想知道它的来源。Google根本没有帮助。


2
您是否要调用UINavigationController委托方法:fun navigationController(navigationController:UINavigationController,willShowViewController viewController:UIViewController,animation:Bool){}?
Norman G

2
willShowViewController 永远不会被呼唤,不……
swalkner's

我也一样 我正在使用SpriteKit和SceneKit并怀疑它们!
霍华德·洛瓦特,2016年

3
有人提交错误报告吗?我正要。
David DelMonte '16

Answers:


285

在您的Xcode中:

  • 单击“停止”按钮旁边的活动方案名称
  • 单击编辑方案...。
  • 在“运行(调试)”中,选择“参数”选项卡
  • 在环境变量中,单击+
  • 添加变量:OS_ACTIVITY_MODE =禁用

屏幕截图


4
谢谢你的额外信息
amergin

26
请注意,我没有将NSLog输出随机输出到控制台,然后再次将其删除以进行修复。这更多的是苹果公司的“高级”编程。
amergin '16

37
为了它的价值,只要更改方向,并且确实禁用OS_ACTIVITY_MODE环境变量,我都会收到此消息。
user2698617

5
注意:添加此选项,您也不会在控制台中看到NSLogs。
niravdesai21

4
这不像是关闭火警警报吗?
ScottyBlades

191

它来自+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]os_log API。它不依赖于您使用的其他组件/框架(仅来自UIKit)-它在更改界面方向时以干净的单视图应用程序项目复制。

此方法包括2部分:

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

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

似乎雷达是我们能做的最好的事情。


1
您能否详细说明用于调试的工具,以获取此私有方法的名称及其结构?
Oleksandr Karaberov '16

9
@AlexanderKaraberov,您可以使用Hopper Disassembler在框架二进制文件中查找警告文本,并使用私有方法对此文本进行引用。
k06a

当键盘向内滚动时,我也得到了此消息,并且我有一个控制器已订阅以通过调整其视图的大小进行响应。
yo.ian.g

82

尝试将以下内容放入environment variables方案中的run(debug)

OS_ACTIVITY_MODE = disable

当使用硬件->旋转菜单项旋转iPhone 7时,我在模拟器中得到了这个。此环境变量使虚假消息消失了。
乔治D吉顿

1
以下@Foo的答案很有用,因为它包含操作方法详细信息。
凯文·欧文斯

1
它还不会打印约束警告日志
chirag shah,2016年

36
OP询问消息的来源。只是说出如何让它沉默并不是正确的答案。
iCaramba '16

6
“ IOS_ACTIVITY_MODE = disable”答案将关闭所有日志记录!如果您不想查看日志,只需关闭日志视图。真是荒谬的答案,令人惊讶的是它有这么多票!什么也没有解决实际消息。我们的大量使用核心数据的应用程序运行良好,这些消息和其他消息在最近的Xcode更新之一之后开始出现。遗憾的是Apple无法解决此类问题。
约翰·约翰(John

13

我们可以通过这种方式使其静音(设备和模拟器需要不同的值):

添加名称OS_ACTIVITY_MODE和值${DEBUG_ACTIVITY_MODE}并进行检查(在产品->方案->编辑方案->运行->参数->环境中)。

在此处输入图片说明

添加用户定义的设置DEBUG_ACTIVITY_MODE,然后添加Any iOS Simulator SDKDebug它的值设置为disable(在项目- >生成设置- > + - >用户定义的设置)

在此处输入图片说明


不适用于我:尽管已经按照上面的建议禁用了调试活动模式,但我也在控制台中看到了这一点。
约翰

-1

要修复,我从模拟器中删除了该应用程序。

我还先运行了Clean

我认为没有任何与定向有关的触发。在出现此症状之前,最大的变化是Swift框架开始调用NSLog工作线程而不是主线程。


1
首先,当我在模拟器中运行它而不旋转它时,执行一次干净工作对我来说很好,但是当我再次使用旋转命令进行测试时,它报告了相同的错误。
cheznead

我正在使用平移手势,并且仅在更改方向时才收到此错误。
杰里米·安德鲁斯

-8
OS_ACTIVITY_MODE = disable

这也将禁用在真实设备中进行调试的能力(此后从真实设备开始都不会输出控制台)。


6
您只是复制了一个较早的答案(细节较少)
Ashley Mills

2
实际上,TL; DR可以提供帮助。
胡安·杰·加西亚
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.