iOS 10:"[App]如果我们在真正的预提交处理程序中,由于CA限制,我们实际上无法添加任何新的围栏"

swa*_*ner 389 ios

我有时在运行我的应用程序时在Xcode 8b3的日志中收到此消息,一切似乎都有效,但我想知道它来自何处.谷歌根本没有帮助.

Ed.*_*Ed. 284

在你的Xcode中:

  • 单击"停止"按钮旁边的活动方案名称
  • 点击编辑方案....
  • 在Run(Debug)中选择Arguments选项卡
  • 在Environment Variables中单击+
  • 添加变量:OS_ACTIVITY_MODE =禁用

截图

  • 对于它的价值,无论何时进行方向更改,我都会收到此消息,并且我已禁用OS_ACTIVITY_MODE环境变量. (37认同)
  • 请注意,我随机获取了没有NSLog输出到控制台并再次将其删除以修复它.这更像是苹果公司遭遇的"高级"节目. (26认同)
  • 这也会禁用NSLayoutConstraint错误. (15认同)
  • 注意:添加此项,您也不会在控制台中看到NSLog. (5认同)
  • 感谢您提供更多信息 (4认同)
  • 这不就像关掉火警吗? (4认同)
  • 有人可以请解释一下吗?为什么我们使用它.因为我们没有解决错误.我们隐藏它. (4认同)
  • 现在,我在控制台日志中看不到任何内容? (2认同)
  • 如果使用OSLog进行日志记录,则"OS_ACTIVITY_MODE = disable"会导致问题. (2认同)

Rom*_*lov 190

它来自+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]via os_log API.它不依赖于您正在使用的其他组件/框架(仅来自UIKit) - 它在干净的单视图应用程序项目中重现接口方向的变化.

该方法由2部分组成:

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

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

似乎雷达是我们能做的最好的.

  • @AlexanderKaraberov您可以使用Hopper反汇编程序在框架二进制文件中查找警告文本,并从私有方法引用此文本. (9认同)
  • 认为这应该是最受欢迎的答案. (8认同)

小智 83

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

OS_ACTIVITY_MODE = disable
Run Code Online (Sandbox Code Playgroud)

  • OP询问消息的来源.只是说如何沉默它不是正确的答案. (36认同)
  • "IOS_ACTIVITY_MODE =禁用"答案将关闭所有日志记录!如果您不想查看日志,只需关闭日志记录视图即可.真是荒谬的回答,令人惊讶的是它有这么多的选票!什么都不解决实际的消息.我们大量使用核心数据的应用程序工作正常,这些消息和其他消息在最后一次Xcode更新后开始出现.遗憾的是,Apple无法解决这类问题. (6认同)

Igo*_*gor 15

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

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

在此输入图像描述

添加用户定义的设置DEBUG_ACTIVITY_MODE,再加入Any iOS Simulator SDKDebug,并设置它的值disable(在项目- >构建设置- > + - >用户定义的设置)

在此输入图像描述