【问题标题】:Xcode 9.0.1 Interface Builder 100% CPU opening iOS StoryboardXcode 9.0.1 Interface Builder 100% CPU 打开 iOS Storyboard
【发布时间】:2018-04-05 22:44:05
【问题描述】:

昨晚 Xcode 自动更新到版本 9.0.1 (9A1004)。今天,我尝试打开一个现有项目,但我的 iOS 故事板文件卡在了一个永无止境的微调器上,并且 Activity Monitor 报告 Interface Builder 使用 100% CPU。我有第二台 MacBook Pro,它仍然有 Xcode 9.0.0,它可以毫无问题地打开情节提要。我在两者上都运行 macOS High Sierra。其他任何人都看到过或知道解决方法。

【问题讨论】:

  • 这是一个可能的副本:stackoverflow.com/questions/46633160/… 但是,我的故事板文件在 9.0 上打开正常,但在 9.0.1 上永远循环。
  • 我向 Apple 提交了错误报告,他们要求我将失败的故事板文件以及分析循环的实用程序的输出发送给他们。球现在又回到了他们的球场上。顺便说一句,在我的情况下,活动监视器显示与循环一起存在严重的内存泄漏。
  • 我也刚刚向苹果提交了一份错误报告。使用屏幕截图和重现问题的确切步骤。我希望我找到的解决方法也适用于您,但如果苹果有多个错误,我不会感到惊讶。
  • 我的故事板仍然无法使用 Xcode 9.1 (9B55) 打开。即使在项目关闭后,Interface Builder Cocoa Touch Tool 仍然显示 99% 的 CPU 和持续的内存泄漏。无论 Show Live Issues 的设置如何,都会失败。

标签: ios xcode interface-builder macos-high-sierra


【解决方案1】:

我收到了来自我的错误报告的回复,其中包含建议的解决方法。建议是编辑情节提要文本并在情节提要的适用工具栏标签中将 translatesAutoresizingMaskIntoConstraints 属性的值从 NO 更改为 YES。

发件人:

<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill"
 fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KCx-9L-amg">

收件人:

<toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill"
 fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="YES" id="KCx-9L-amg">

我的项目中有两个故事板文件,这确实解决了它们的问题。

【讨论】:

  • 我没有 标签,我应该编辑什么 :),我不会将所有 'translatesAutoresizingMaskIntoConstraints' 更改为 YES 对吗?
  • 这里一样,我的故事板中没有toolbar标签:/
  • 提交错误报告并向他们发送他们需要为您提供适合您的解决方法的信息可能不会有什么坏处。当我这样做时,他们马上回来问: 请附上以下内容: • 重现此问题的 .storyboard 文档。 • 问题重现时在终端中运行sudo spindump Xcode -reveal 的输出。
【解决方案2】:

我找到了解决方法!我已经为此苦苦挣扎了好几个星期,这太令人沮丧了。今晚我顿悟了!从我注意到和阅读的内容来看,这个问题似乎是由大量过度构建引起的,特别是如果你像我一样在你的故事板中有 IBDesignables。所以我想,'如果我使用他们今年夏天宣布的 Apple 新构建系统会怎样?'

在 Xcode 中,转到 文件 > 项目设置。然后将 Build System 从“Standard Build System”更改为“New Build System”。瞧!它一直像以前一样工作!希望这不仅仅是像我见过的其他一些人那样的临时修复。到目前为止,这似乎很神奇。

我还使用 Xcode 9.0 作为额外的预防措施,我从这里下载:https://developer.apple.com/download/more/

【讨论】:

  • 非常感谢! Interface Builder Process 拥有 5-10 % 的 CPU !
【解决方案3】:

使用您的情节提要Vary Traits概念,并将情节提要中的设备设置为 iPhone X。

这是 Xcode 9.1 版中的快速修复。

【讨论】:

  • 当我使用 XCode 11.5 时,我必须在情节提要中设置设备 iPhone 11。似乎是您必须选择的最高 iPhone。
  • 似乎不同的设备需要不同的 CPU 进行渲染。在 XCode 13.0 上,我的 CPU 从 30% 到 100+% 不等,这取决于设置的设备视图。
【解决方案4】:

我也有同样的问题。我有运行 High Sierra 的 MacBook Pro 和 iMac。就像你一样,我只升级了我的一台电脑(MacBook Pro)。我已经尝试了一切,但没有任何效果。我什至重新安装了操作系统并从 iMac 复制了旧的 Xcode。

更新:
我已经找到了解决方法 :-) 我创建了一个新的故事板并将所有内容一点一点地放入,直到找到有问题的代码。我发现 systemItem="trash" 是问题所在。然后我去了原来的情节提要并删除了 systemItem="trash" 一切正常!

我也尝试使用 add 也失败了。所以打开情节提要的 src 代码并搜索 systemItem。

Bar Item 中的任何图像 都会卡住 Xcode。我只是尝试用我自己的垃圾桶图标替换系统项目图标,然后再次...

【讨论】:

  • 不幸的是,这对我来说既不是修复也不是解决方法。我的故事板有 29 个场景和 18 个带有图像的系统项,所以测试起来会很尴尬。你的分析非常好。我希望您的信息能帮助 Apple 快速解决此问题。我只是希望在他们提供修复之前我不需要编辑我的故事板。谢谢。
  • 不用担心。对不起,它对你没有好处。对我来说,这是一个很大的解脱,因为我现在可以继续在我的 GUI 上工作。我只在 3 个地方有 systemItems,用 word 替换对我来说是可以的。收到 Apple 的回复后,我会尽快通知您
  • 我认为这里不仅仅是一个带有系统图像的条形按钮项。我可以在导航栏和工具栏上创建一个带有条形按钮项的简单单视图故事板,并且它不会失败。
  • Apple 刚刚回复我说这是一个重复的错误并关闭了我的错误。但是我看不到其他错误,所以我不知道状态:-/
  • 我遇到了同样的问题。我的情节提要中没有任何 translatesAutoresizingMaskIntoConstraints,但我的工具栏中确实有两个灵活的空格键按钮项。我现在将它们评论出来,这为我解决了这个问题。我正在使用 Xcode 9.1。
【解决方案5】:

我刚刚尝试了 Xcode 9.2 Beta 2 (9C34b),对我来说它可以再次工作 :)

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2012-08-15
    相关资源
    最近更新 更多