我的应用程序至少使用Xcode5.1故事板支持iOS6。
在Xcode 6 GM中完成了几项工作之后,我需要在iOS 6 Simulator上进行测试。 Xcode 6 GM没有iOS 6模拟器。所以,我在Xcode 5.1中打开了我的项目。
但它无法建立。我甚至无法在Xcode5.1中打开故事板。
在导航窗格中,显示
Main_iPhone.storboard
Interface Builder Storyboard Compiler Error
The document"(null)" requires Xcode6.0 or later.
当我点击它时,会出现提示
The document "Main_iPhone.storyboard" requires Xcode 6.0 or later.
This version does not support constraints to layout margins. Open this document with Xcode 6.0 or later.
答案 0 :(得分:16)
使用Xcode 6添加几乎任何类型的布局约束都会使故事板(或.xib文件)与Xcode 5.1不兼容。如果你需要在Xcode 5.1中使用Xcode 6.0修改过的故事板,就必须删除所有基于“边距”的约束。
执行以下步骤,使Xcode 6修改故事板,并使用Xcode 5重新编译:
使用Xcode 6:
在故事板文件检查器的 Interface Builder文档部分中将“打开”设置为Xcode 5.1。设置此项后,如果存在任何不兼容的边距限制,Xcode 6.0将生成警告。
识别边距限制的一种简单方法是在文本编辑器中打开故事板(最好是在磁盘上更改文件时自动刷新的故事板)。搜索单词“Margin”并寻找这样的行:
<constraint firstItem="gZc-ET-UKM" firstAttribute="leading" secondItem="MMQ-IT-qOo" secondAttribute="leadingMargin" constant="-8" id="H3i-wo-2Mm"/>
这些约束需要删除或更新,以直接基于超级视图而不是边距。通过在大纲视图中选择约束,然后转到大小检查器并取消选中下拉菜单中的“相对于边距”选项,可以更新约束而不是删除约束>第一项或第二项设置。一旦你这样做,你还需要添加一个与边距匹配的常量(通常为8)。
当您删除或更新每个约束时,您应该在文本编辑器中看到storyboard文件更新并删除“Margin”一词。删除所有不兼容的约束后,警告将消失,此行将从故事板文件中消失:
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
答案 1 :(得分:1)
我遇到了同样的问题,这是我的解决方案:
假设问题文件为Main.storboard
答案 2 :(得分:0)
您可以在右侧的身份检查器中更改此选项。 在Xcode 6中选择您的Storyboard,打开身份检查器,然后打开Interface Builder Document - &gt;在Xcode 5.1(或其他)中打开
答案 3 :(得分:0)
选择你的nib文件或故事板,选择文件检查器pic 1.并在你使用xcode 6创建的每个故事板中取消选中使用大小类(图2),因为默认情况下会检查它。
答案 4 :(得分:0)
虽然,我不认为这是最终解决方案, ,暂时我正在写作,我只是忽略了“RED ERROR”并点击了Run。
它推出了iOS6模拟器并且工作正常。我只需要退出由Xcode 6发布的模拟器。
错误消息仍然存在,我无法在Xcode 5.1中打开故事板文件。
但至少我能够在旧版iOS上测试它。所以现在Xcode5.1仅用于我的应用程序的测试:(
如果你找到更好的解决方案,那就问题了。感谢。