Xcode 10:我们的项目导致“界面生成器”崩溃或无法持续渲染。在项目外部打开情节提要时,效果很好

时间:2018-11-01 14:08:13

标签: swift xcode storyboard interface-builder

在过去的几个月中,我们在Xcode 10的iOS界面生成器方面遇到了巨大的问题。

仅在进行一些编辑操作后,问题才会发生。需要重新启动xcode才能使它们消失。在某些情况下,在情节提要中的不同设备尺寸之间切换时,它们消失了。

遇到的问题:

  1. 编辑情节提要时Xcode意外崩溃。

  2. 约束停止更新。约束警告停止更新。 (没有选择单击黄色警告按钮的选项-更新约束)。

  3. 显示“灰色小方块”,而不是我的视图/视图控制器。没有渲染视图。只是一个空白的灰色视图。

  4. 在控制器上没有呈现子视图-只是灰色背景。

  5. 显示错误,提示Interface Builder崩溃,要求查看日志。实际上查看XCode日志-没有意义,因为它是外来语言...

但是,我们找到了解决方法!

我们关闭项目和工作区。然后,我们使用XCode单独打开情节提要。 (在项目外部)。

因此,您所需要做的就是:确保在项目中设置了所需的IBOutlet和IBAction,然后进行布局调整,只需在项目关闭的情况下独立打开情节提要即可。

但是现在这带来了一个问题:项目中的某些设置显然会导致界面生成器和情节提要的编辑出现问题。如何进一步诊断问题,并找出导致接口构建器失败的项目问题?

更多背景信息:

  1. 我们在项目内部有一个框架参考,其中包含自己的Bundle ID。它有很多故事板。它作为子项目参考引用到该应用程序项目。

  2. 没有工作区。仅使用项目。 (未使用cocoapods)

  3. 我们的故事板很小:每个故事板只有一个控制器。所有导航都通过代码进行管理。 (没有话题)。因此,情节提要的复杂性不是问题。

  4. 我们不使用IBDesignables或任何高级功能。

  5. 我们只使用约束。默认情况下,所有情节提要上的特质变化均处于启用状态,但我们不使用它们。

  6. 我们引用了我们自己框架中的其他.framework文件。其中一些是胖框架。

3 个答案:

答案 0 :(得分:1)

有时这是由于您正在工作的情节提要/ xib上的@IBDesignable引起的。尝试着重关注@IBDesignable视图,并转到Editor-> Debug Selected Views,然后跟踪堆栈跟踪输出。通常,它将为您提供足够的洞察力,以继续进行调试并找出导致问题的确切原因。

对于我们的项目,它是@IBDesignable类,尝试使用直到运行时和声明失败才发生错误才进行初始化的东西。

答案 1 :(得分:1)

将Interface Builder从任何iPhone设备切换到任何iPad设备时,我也遇到类似的问题-Xcode 10刚刚崩溃。在iPhone设备之间切换很好。

结果显示日志表明UILabel上的'setAttributeText'有问题。我的UILabel之一设置为Attributed(相对于Plain),其对齐方式设置为Align Natural“ ---”。将其设置为Align Center可以解决崩溃问题,并且现在可以再次切换到iPad设备。

答案 2 :(得分:0)

在Xcode 7或8中创建的旧项目也有同样的问题。我的解决方案是删除所有VC视图并再次创建