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

时间:2015-04-09 17:05:59

标签: ios xcode xcode6.3

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

我已经向Apple发布了一个错误报告。 (错误20483867)。

现在,我有两个工作。

  1. 从Apple下载并使用Xcode 6.2。
  2. 从自定义视图头文件中删除IB_DESIGNABLE标记。
  3. 这可能是一个Apple漏洞,但有没有人有更好的解决方案或解决方案?

10 个答案:

答案 0 :(得分:28)

我已经建议编辑以获得更准确的说明

仅当您的项目包含自定义字体时才会发生。 它只会通过访问包含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

答案 1 :(得分:25)

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

答案 2 :(得分:15)

Apple的回复:Link to Developer Forums on Apple

  

感谢大家的报道。我们正在追踪这一点并努力解决它。不幸的是,我们没有一个很好的解决方法,但是有两个方法可以帮助您:

     

如果Xcode在启动时挂起,因为之前打开了使用自定义字体/ IBDesignable的故事板/ XIB:删除正在打开的项目的xcodeproj中的“UserInterfaceState.xcuserstate”文件,它将在这样的路径上:我的App.xcodeproj / project.xcworkspace / xcuserdata / yourusername.xcuserdatad / UserInterfaceState.xcuserstate

     

如果您确实需要使用Xcode 6.3编辑包含自定义字体的storyboard / XIB文件:

     
      
  1. 制作storyboard / XIB文件的副本作为备份
  2.   
  3. 在文本编辑器中打开storyboard / XIB文件
  4.   
  5. 删除引用自定义字体的名为“fontDescription”的XML标记,例如:。删除此标记会将字体恢复为标准系统字体。
  6.   
  7. 使用自定义字体为对象创建出口,并在运行时将这些对象的字体设置为自定义字体,例如在视图控制器上覆盖viewDidLoad或awakeFromNib
  8.         

    重要提示: 我们绝不推荐手动编辑storyboard / XIB文件。但是,我们认识到这个问题阻止了许多人编辑文档,并希望提供一种解决方法,但任何手动编辑都可能导致文档损坏。

答案 3 :(得分:13)

对我来说同样的问题。删除IB_DESIGNABLE解决了这个问题。回到6.2并不适合我,因为我在iOS 8.3设备上测试应用程序 - Xcode 6.2无法在iOS 8.3设备上运行应用程序:( < / p>

答案 4 :(得分:3)

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

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

答案 5 :(得分:2)

我没有答案,但发现只需强制退出并重新启动就会在完全相同的情况下重新启动Xcode。要只能重新启动Xcode,请删除文件夹~/Library/Saved Application State/com.apple.dt.Xcode.savedState

答案 6 :(得分:1)

此错误已在今天发布的6.4 Xcode测试版中得到修复。转到开发中心并登录下载。

答案 7 :(得分:1)

Xcode 8.1 - 如果您有导航视图(在我的情况下它是顶部条形不透明导航栏),只需尝试设置属性&#34;顶部栏&#34;无。

答案 8 :(得分:0)

作为一种解决方法,我只是在我的一些使用它的自定义组件中注释掉了所有@IBDesignable标记。当我这样做时,是的,我失去了在Interface Builder中调整设置的能力,但它允许我至少打开.xib文件,而不是XCode崩溃。

当Apple出现修复时,我会简单地取消评论那些@IBDesignable行。

答案 9 :(得分:0)

@O。 Kurnenkov的回答对我有用。它与IB_Designable和自定义字体,Cocoapods等没有任何关系。

出于某种原因,“Opaque Navigation Bar”导致nib文件(似乎不会影响storyboard s)不断改变y位置;这可以在Size Inspector中看到y位置在0到64之间闪烁。这发生在Xcode 8.2(8C38)上。

enter image description here

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

enter image description here

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

希望这有帮助!