在Xcode5.1中修改Xcode5.1中的项目,以testing旧版本的iOS

我的应用程序已经支持至lessiOS6使用Xcode5.1故事板。

在Xcode 6 GM中做了几项工作之后,我需要在iOS 6 Simulator上进行testing。 Xcode 6 GM没有iOS 6 Simulator。所以,我在Xcode 5.1中打开了我的项目。

但它没有build立。 我甚至无法打开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. 

使用Xcode 6添加几乎任何types的布局约束都会导致故事板(或.xib文件)与Xcode 5.1不兼容。 如果您需要在Xcode 5.1中使用Xcode 6.0中的故事板,则需要删除所有“margin”约束。

执行这些步骤来制作一个由Xcode 6加载并用Xcode 5重新编译的故事板:

使用Xcode 6:

  1. 在故事板文件检查界面生成器文档部分中将“打开”设置为Xcode 5.1。 当这个设置的时候,如果存在不兼容的边界约束,Xcode 6.0会产生一个警告。

    在8.0之前的iOS版本中布局相对于版面边距的属性

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

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

    相对于保证金图像

在删除或更新每个约束时,应该在文本编辑器更新中看到故事板文件,并删除单词“Margin”。 一旦删除了所有不兼容的约束,警告就会消失,这条线将从故事板文件中消失:

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

我遇到同样的问题,这里是我的解决scheme:

假设问题文件是Main.storboard

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

您可以在右侧的身份检查器中更改此选项。 在Xcode 6中select你的Storyboard,打开身份检查器,然后界面生成器文档 – >在Xcode 5.1中打开(或其他)

select你的笔尖文件或故事板,select文件检查器图片1,并取消使用大小类(图片2)在每个故事板,你用xcode 6创build,因为默认情况下,它检查。

在这里输入图像说明

虽然我不认为这是最终的解决办法,但是我暂时写作的时候,我只是忽略了那个“红色错误”而打了跑。

它启动了iOS6模拟器,工作正常。 我只需要退出由Xcode 6启动的模拟器。

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

但至less我可以在旧版本的iOS上进行testing。 所以现在Xcode5.1只是为了testing,对于我的应用:(

如果你find更好的解决scheme,那么请回答这个问题。 谢谢。