打开XIB文件后,Xcode 6.3冻结/挂起

升级到Xcode 6.3(发行版)后,每次打开包含IB_DESIGNABLE视图的XIB / Storyboard文件时,Xcode都会冻结 使用自定义字体 对于任何项目,并包括一个自定义字体(不一定要参考该字体在该XIB /故事板)。 打开.xib文件后,冻结发生,然后尝试切换到任何其他文件。 Xcode挂起,必须强制退出。

我已经向苹果公司发布了一个错误报告。 (错误20483867)。

现在,我有两个工作。

  1. 从Apple下载并使用Xcode 6.2。
  2. 从自定义视图头文件中删除IB_DESIGNABLE标记。

这可能是一个苹果的错误,但有没有人有更好的解决方法?

Xcode 6.3.1修复了故事板中自定义字体和IB_DESIGNABLE视图的问题。 通过Mac App Store更新,你应该很好。

我已经build议编辑一个更准确的描述

只有当你的项目包含自定义字体时才会发生 它只会通过访问任何包含IBDesignable自定义视图的Storyboard / XIB而冻结,甚至不会引用Storyboard / XIB中的该字体。

我的解决方法是使用还安装了Xcode的旧版本(Xcode 6.3 beta或Xcode 6.2),并使用它来更新您的Interface Builder文件,并从不在6.3中打开它。 在Xcode的新窗口中打开Storyboard / XIB, option + shift + click项目树中的文件。

每当你遇到冻结,我使用这个命令来清除保存的状态只是为了那个项目。

rm -rf YourProject.xcodeproj/project.xcworkspace/xcuserdata

苹果的反应: 链接到苹果开发者论坛

谢谢大家的报告。 我们正在追踪这个问题并努力解决问题。 不幸的是,我们没有很好的解决方法,但是有两个选项可以帮助您:

如果因为使用自定义字体/ IBDesignable的情节提要/ XIB以前打开Xcode挂起启动:删除您打开的项目的xcodeproj内的“UserInterfaceState.xcuserstate”文件,它将在这样的path:我的应用程序.xcodeproj / project.xcworkspace / xcuserdata / yourusername.xcuserdatad / UserInterfaceState.xcuserstate

如果您确实需要使用Xcode 6.3编辑包含自定义字体的Storyboard / XIB文件,请执行以下操作:

  1. 制作故事板/ XIB文件的副本作为备份
  2. 在文本编辑器中打开故事板/ XIB文件
  3. 删除名为“fontDescription”的XML标签,引用您的自定义字体,例如:。 删除这个标签会将字体还原为标准的系统字体。
  4. 使用自定义字体将对象插入到对象中,并在运行时将这些对象的字体设置为自定义字体,例如,在视图控制器上的viewDidLoad或awakeFromNib的重写

重要提示:我们从不build议手动编辑故事板/ XIB文件。 但是,我们认识到这个问题正在阻止你们中的许多人编辑你的文档,并希望提供一个解决办法,即任何手部编辑都可能导致文档损坏。

同样的问题对我来说。 删除IB_DESIGNABLE修复了这个问题..回到6.2并不适用于我,因为我在使用iOS 8.3的设备上testing应用程序 – Xcode 6.2无法在iOS 8.3设备上运行应用程序:(

另一个解决方法是将文件扩展名更改为所有字体文件,并从Info.plist加载更改的文件名。 这样,您可以保留IBDesignables,仍然使用您的自定义字体,但不会在Interface Builder的字体select器中看到它们。

从Interface Builder中设置的所有自定义字体将继续工作,但为了更改它们或设置其他自定义字体,您必须从代码执行,或者从文本编辑器中按顺序修改Storyboard或Nib文件设置字体名称。

我没有一个答案,但发现只是强制退出和重新启动将重新启动Xcode在完全相同的情况。 为了能够重新启动Xcode,请删除~/Library/Saved Application State/com.apple.dt.Xcode.savedState文件夹。

这个bug已经在今天发布的6.4 Xcodetesting版中得到修复。 转到开发中心并login下载。

Xcode 8.1 – 如果你有一个导航的视图(在我的情况下,它是顶部酒吧不透明的导航栏),只是尝试将属性“顶部酒吧”设置为无。

作为一种解决方法,我刚刚在我使用这个的一小撮定制组件中注释了所有的@IBDesignable标记。 当我这样做的时候,是的,我失去了调整Interface Builder中的设置的能力,但是它让我至less可以打开带有XCode崩溃的.xib文件。

当苹果出现w / a fix时,我将简单地取消注释这些@IBDesignable行。

@O。 Kurnenkov的答案为我工作。 它与IB_Designable,自定义字体,Cocoapods等没有任何关系。

出于某种原因,“不透明导航栏”会导致nib文件(似乎不会影响storyboard )来不断改变y位置; 这可以在Size Inspector中看到,其中y位置将在0和64之间闪烁。使用Xcode 8.2(8C38)发生这种情况。

在这里输入图像说明

我的猜测是,这导致Xcode不断更新布局,从而耗尽资源并导致它挂起/冻结。

在这里输入图像说明

解决scheme是使用任何“半透明”选项,推断,或无。

希望这可以帮助!