升级到Xcode 6.3(发布版本)后,每次打开包含IB_DESIGNABLE
视图的XIB / Storyboard文件时,Xcode都会冻结,该视图使用自定义字体进行任何项目和包括自定义字体(不一定要在该XIB / Storyboard中引用该字体)。打开.xib文件然后尝试切换到任何其他文件后发生冻结。 Xcode挂起,必须强制退出。
我已经向Apple发布了一个错误报告。 (错误20483867)。
现在,我有两个工作。
这可能是一个Apple漏洞,但有没有人有更好的解决方案或解决方案?
答案 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文件:
- 制作storyboard / XIB文件的副本作为备份
- 在文本编辑器中打开storyboard / XIB文件
- 删除引用自定义字体的名为“fontDescription”的XML标记,例如:。删除此标记会将字体恢复为标准系统字体。
- 使用自定义字体为对象创建出口,并在运行时将这些对象的字体设置为自定义字体,例如在视图控制器上覆盖viewDidLoad或awakeFromNib
醇>重要提示: 我们绝不推荐手动编辑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)