Xcode 6.3 freezes/hangs 打开 XIB 文件后
Xcode 6.3 freezes/hangs after opening XIB file
升级到 Xcode 6.3(发行版)后,Xcode 现在每次打开包含 IB_DESIGNABLE
视图的 XIB/Storyboard 文件时都会冻结 为任何项目使用自定义字体 并包含自定义字体(不一定要在 XIB/Storyboard 中引用该字体)。冻结发生在打开 .xib 文件然后尝试切换到任何其他文件之后。 Xcode 挂起,必须强制退出。
我已向 Apple 提交错误报告。 (错误 20483867)。
现在,我有两个解决方法。
- 从 Apple 下载并使用 Xcode 6.2。
- 从自定义视图头文件中删除 IB_DESIGNABLE 标签。
这可能是 Apple 的一个错误,但有没有人有更好的解决方法或解决方案?
我没有答案,但发现只需强制退出并重新启动即可在完全相同的情况下重新启动 Xcode。为了能够重新启动 Xcode,删除文件夹 ~/Library/Saved Application State/com.apple.dt.Xcode.savedState
。
我也遇到同样的问题。删除 IB_DESIGNABLE 解决了问题。回到 6.2 对我不起作用,因为我正在使用 iOS 8.3 - Xcode 6.2 不能 [=16= 的设备上测试应用程序] 设备上的应用 iOS 8.3 :(
我已经建议修改以获得更准确的描述。
只有当您的项目包含自定义字体时才会发生。
只要访问任何包含 IBDesignable 自定义视图的 Storyboard/XIB,它就会冻结,甚至不会在 Storyboard/XIB.
中引用该字体
我的解决方法是 使用还安装了 Xcode 的旧版本(Xcode 6.3 beta 或 Xcode 6.2)并使用它来更新您的界面Builder 文件,永远不要在 6.3 中打开它。 在 Xcode 中用 option
+shift
+[ 在新的 window 中打开那些 Storyboard/XIB =12=] 项目树中的文件。
每当您遇到卡顿时,我都会使用此命令清除该项目的已保存状态。
rm -rf YourProject.xcodeproj/project.xcworkspace/xcuserdata
另一个解决方法是更改所有字体文件的文件扩展名,并从 Info.plist 加载更改后的文件名。
这样您可以保留 IBDesignables 并仍然使用您的自定义字体,但将无法在 Interface Builder 的字体选择器中看到它们。
之前从 Interface Builder 设置的所有自定义字体将继续工作,但为了更改它们或设置其他自定义字体,您将必须通过代码或修改 Storyboard 或 Nib 文件来完成从文本编辑器中设置字体名称。
此错误已在今天发布的 6.4 Xcode 测试版中修复。去开发中心登录下载。
Apple 的回应:Link to Developer Forums on Apple
Thank you all for your reports. We are tracking this on our end and working hard to resolve it. Unfortunately we don't have a great workaround, but here are two options to get you going:
If Xcode is hanging on launch because a storyboard/XIB using a custom font/IBDesignable was previously open: remove the "UserInterfaceState.xcuserstate" file inside the xcodeproj of the project you are opening, it would be at a path like this: My App.xcodeproj/project.xcworkspace/xcuserdata/yourusername.xcuserdatad/UserInterfaceState.xcuserstate
If you really need to edit the storyboard/XIB file containing the custom font with Xcode 6.3:
- Make a copy of your storyboard/XIB file as a backup
- Open the storyboard/XIB file in a text editor
- Remove XML tags named "fontDescription" that reference your custom font, for example: . Removing this tag will revert the font to the standard system font.
- Make outlets to the objects using the custom font and at runtime set the font of those objects to your custom font, for example in an override of viewDidLoad or awakeFromNib on your view controller
IMPORTANT NOTE: we never recommend hand editing storyboard/XIB files. However we recognize this issue is preventing many of you from editing your documents and wanted to provide a workaround with the caveat that any hand editing may result in corruption of your document.
作为一种解决方法,我只是在使用它的少数自定义组件中注释掉了所有@IBDesignable 标记。当我这样做时,是的,我失去了在 Interface Builder 中调整设置的能力,但它至少允许我打开 .xib 文件 w/out XCode 崩溃。
当 Apple 提出修复时,我将简单地取消对那些@IBDesignable 行的注释。
Xcode 6.3.1 修复了 Storyboard 中自定义字体和 IB_DESIGNABLE
视图的问题。通过 Mac App Store 更新,应该没问题。
Xcode 8.1 - 如果你有一个带导航的视图(在我的例子中它是顶部栏不透明导航栏),只需尝试将 属性 "top Bar" 设置为 None.
@O。 Kurnenkov 的回答对我有用。它与 IB_Designable 和自定义字体、Cocoapods 等没有任何关系
由于某种原因 "Opaque Navigation Bar" 导致 nib
文件(它似乎不影响 storyboard
s)不断改变 y
位置;这可以在 Size Inspector
中看到,其中 y
位置将在 0 和 64 之间闪烁。这发生在我身上 Xcode 8.2 (8C38)。
我的猜测是,这会导致 Xcode 不断更新布局,从而耗尽资源并导致 hang/freeze。
解决方案是使用任何 "Translucent" 选项、Inferred 或 None。
希望对您有所帮助!
升级到 Xcode 6.3(发行版)后,Xcode 现在每次打开包含 IB_DESIGNABLE
视图的 XIB/Storyboard 文件时都会冻结 为任何项目使用自定义字体 并包含自定义字体(不一定要在 XIB/Storyboard 中引用该字体)。冻结发生在打开 .xib 文件然后尝试切换到任何其他文件之后。 Xcode 挂起,必须强制退出。
我已向 Apple 提交错误报告。 (错误 20483867)。
现在,我有两个解决方法。
- 从 Apple 下载并使用 Xcode 6.2。
- 从自定义视图头文件中删除 IB_DESIGNABLE 标签。
这可能是 Apple 的一个错误,但有没有人有更好的解决方法或解决方案?
我没有答案,但发现只需强制退出并重新启动即可在完全相同的情况下重新启动 Xcode。为了能够重新启动 Xcode,删除文件夹 ~/Library/Saved Application State/com.apple.dt.Xcode.savedState
。
我也遇到同样的问题。删除 IB_DESIGNABLE 解决了问题。回到 6.2 对我不起作用,因为我正在使用 iOS 8.3 - Xcode 6.2 不能 [=16= 的设备上测试应用程序] 设备上的应用 iOS 8.3 :(
我已经建议修改以获得更准确的描述。
只有当您的项目包含自定义字体时才会发生。 只要访问任何包含 IBDesignable 自定义视图的 Storyboard/XIB,它就会冻结,甚至不会在 Storyboard/XIB.
中引用该字体我的解决方法是 使用还安装了 Xcode 的旧版本(Xcode 6.3 beta 或 Xcode 6.2)并使用它来更新您的界面Builder 文件,永远不要在 6.3 中打开它。 在 Xcode 中用 option
+shift
+[ 在新的 window 中打开那些 Storyboard/XIB =12=] 项目树中的文件。
每当您遇到卡顿时,我都会使用此命令清除该项目的已保存状态。
rm -rf YourProject.xcodeproj/project.xcworkspace/xcuserdata
另一个解决方法是更改所有字体文件的文件扩展名,并从 Info.plist 加载更改后的文件名。 这样您可以保留 IBDesignables 并仍然使用您的自定义字体,但将无法在 Interface Builder 的字体选择器中看到它们。
之前从 Interface Builder 设置的所有自定义字体将继续工作,但为了更改它们或设置其他自定义字体,您将必须通过代码或修改 Storyboard 或 Nib 文件来完成从文本编辑器中设置字体名称。
此错误已在今天发布的 6.4 Xcode 测试版中修复。去开发中心登录下载。
Apple 的回应:Link to Developer Forums on Apple
Thank you all for your reports. We are tracking this on our end and working hard to resolve it. Unfortunately we don't have a great workaround, but here are two options to get you going:
If Xcode is hanging on launch because a storyboard/XIB using a custom font/IBDesignable was previously open: remove the "UserInterfaceState.xcuserstate" file inside the xcodeproj of the project you are opening, it would be at a path like this: My App.xcodeproj/project.xcworkspace/xcuserdata/yourusername.xcuserdatad/UserInterfaceState.xcuserstate
If you really need to edit the storyboard/XIB file containing the custom font with Xcode 6.3:
- Make a copy of your storyboard/XIB file as a backup
- Open the storyboard/XIB file in a text editor
- Remove XML tags named "fontDescription" that reference your custom font, for example: . Removing this tag will revert the font to the standard system font.
- Make outlets to the objects using the custom font and at runtime set the font of those objects to your custom font, for example in an override of viewDidLoad or awakeFromNib on your view controller
IMPORTANT NOTE: we never recommend hand editing storyboard/XIB files. However we recognize this issue is preventing many of you from editing your documents and wanted to provide a workaround with the caveat that any hand editing may result in corruption of your document.
作为一种解决方法,我只是在使用它的少数自定义组件中注释掉了所有@IBDesignable 标记。当我这样做时,是的,我失去了在 Interface Builder 中调整设置的能力,但它至少允许我打开 .xib 文件 w/out XCode 崩溃。
当 Apple 提出修复时,我将简单地取消对那些@IBDesignable 行的注释。
Xcode 6.3.1 修复了 Storyboard 中自定义字体和 IB_DESIGNABLE
视图的问题。通过 Mac App Store 更新,应该没问题。
Xcode 8.1 - 如果你有一个带导航的视图(在我的例子中它是顶部栏不透明导航栏),只需尝试将 属性 "top Bar" 设置为 None.
@O。 Kurnenkov 的回答对我有用。它与 IB_Designable 和自定义字体、Cocoapods 等没有任何关系
由于某种原因 "Opaque Navigation Bar" 导致 nib
文件(它似乎不影响 storyboard
s)不断改变 y
位置;这可以在 Size Inspector
中看到,其中 y
位置将在 0 和 64 之间闪烁。这发生在我身上 Xcode 8.2 (8C38)。
我的猜测是,这会导致 Xcode 不断更新布局,从而耗尽资源并导致 hang/freeze。
解决方案是使用任何 "Translucent" 选项、Inferred 或 None。
希望对您有所帮助!