在Xcode5.1中构建一个项目,该项目在Xcode 6 GM中进行了修改,用于测试旧版本的iOS

时间:2014-09-15 11:03:12

标签: ios iphone storyboard xcode5 xcode6

我的应用程序至少使用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.

5 个答案:

答案 0 :(得分:16)

使用Xcode 6添加几乎任何类型的布局约束都会使故事板(或.xib文件)与Xcode 5.1不兼容。如果你需要在Xcode 5.1中使用Xcode 6.0修改过的故事板,就必须删除所有基于“边距”的约束。

执行以下步骤,使Xcode 6修改故事板,并使用Xcode 5重新编译:

使用Xcode 6:

  1. 在故事板文件检查器的 Interface Builder文档部分中将“打开”设置为Xcode 5.1。设置此项后,如果存在任何不兼容的边距限制,Xcode 6.0将生成警告。

    Layout attributes relative to the layout margin on iOS versions prior to 8.0

  2. 识别边距限制的一种简单方法是在文本编辑器中打开故事板(最好是在磁盘上更改文件时自动刷新的故事板)。搜索单词“Margin”并寻找这样的行:

    <constraint firstItem="gZc-ET-UKM" firstAttribute="leading" secondItem="MMQ-IT-qOo" secondAttribute="leadingMargin" constant="-8" id="H3i-wo-2Mm"/>
    
  3. 这些约束需要删除或更新,以直接基于超级视图而不是边距。通过在大纲视图中选择约束,然后转到大小检查器并取消选中下拉菜单中的“相对于边距”选项,可以更新约束而不是删除约束>第一项第二项设置。一旦你这样做,你还需要添加一个与边距匹配的常量(通常为8)。

    Relative To Margin Image

  4. 当您删除或更新每个约束时,您应该在文本编辑器中看到storyboard文件更新并删除“Margin”一词。删除所有不兼容的约束后,警告将消失,此行将从故事板文件中消失:

        <capability name="Constraints to layout margins" minToolsVersion="6.0"/>
    
    1. 如果删除了约束,最后一步是在Xcode 5中打开项目并重新创建它们。

答案 1 :(得分:1)

我遇到了同样的问题,这是我的解决方案:

假设问题文件为Main.storboard

  1. 使用Xcode 6打开项目;
  2. 选择Main.storboard作为源代码打开;
  3. 在源代码中搜索“margin”;
  4. 取消选中Interface Builder中相对于边距的相对约束。

答案 2 :(得分:0)

您可以在右侧的身份检查器中更改此选项。 在Xcode 6中选择您的Storyboard,打开身份检查器,然后打开Interface Builder Document - &gt;在Xcode 5.1(或其他)中打开

答案 3 :(得分:0)

选择你的nib文件或故事板,选择文件检查器pic 1.并在你使用xcode 6创建的每个故事板中取消选中使用大小类(图2),因为默认情况下会检查它。

enter image description here

答案 4 :(得分:0)

虽然,我不认为这是最终解决方案, ,暂时我正在写作,我只是忽略了“RED ERROR”并点击了Run。

它推出了iOS6模拟器并且工作正常。我只需要退出由Xcode 6发布的模拟器。

错误消息仍然存在,我无法在Xcode 5.1中打开故事板文件。

但至少我能够在旧版iOS上测试它。所以现在Xcode5.1仅用于我的应用程序的测试:(

如果你找到更好的解决方案,那就问题了。感谢。