从Xcode 6到Xcode 5的故事板的向后兼容性+;在Xcode 6中支持iOS 7

从Xcode 6到Xcode 5的故事板的向后兼容性+;在Xcode 6中支持iOS 7,xcode,storyboard,xcode5,xcode6,xcode-storyboard,Xcode,Storyboard,Xcode5,Xcode6,Xcode Storyboard,在我的项目在Xcode 6下做了一些更改后,我无法从Xcode 5打开情节提要文件(和构建项目)。 由于无法从Xcode 6将应用程序分发到AppStore,而它处于测试阶段,所以我必须在Xcode 5下构建应用程序 有没有办法使情节提要向后兼容Xcode 5? 我在序列图像板文件的标题中发现以下字符串: <capability name="Constraints with attributes relative to the layout margin" minToo

在我的项目在Xcode 6下做了一些更改后,我无法从Xcode 5打开
情节提要文件(和构建项目)。

由于无法从Xcode 6将应用程序分发到AppStore,而它处于测试阶段,所以我必须在Xcode 5下构建应用程序

有没有办法使情节提要向后兼容Xcode 5? 我在序列图像板文件的标题中发现以下字符串:

<capability name="Constraints with attributes relative to the layout margin" minToolsVersion="6.0"/>

我想,它需要删除或编辑一些新的密钥,新的Xcode6使用这些密钥,但无法检测到是哪一个

(不太可能恢复提交,因为有很多更改。)


UPD:
还有另一个问题,出现在Xcode 6中-它添加了基线约束,这在iOS 7中不可用,并且会导致崩溃。(Xcode甚至不总是突出显示此警告!)-要解决此问题,请参阅我的答案,如何删除
基线属性。

在编辑器中打开情节提要。右键单击>在编辑器中打开。复制您的ui xml,省去可以在其中找到版本和情节提要id的标题


接下来,将xml内容粘贴到xcode 5情节提要文件中。

万岁!我修好了!希望它对其他人有用:

我使用regex查找所有伪字符串(支持Sublime 2的regex版本)

  • 在收藏夹文本编辑器中打开stroyboard文件
  • 使用regex
    (\w)Margin“
  • 按模式替换所有引用:
    \1“
  • 从文件中删除
  • 按模式查找并从情节提要文件中删除所有字符串:
    *“基线”。*\n
  • 修复不对齐:在Xcode 5中打开文件,并更新所有视图的约束
  • 就这样<强>利润

  • UPD: 我发现“基线”约束也会导致崩溃,但Xcode没有显示任何关于这些约束的警告


    要修复它,请按模式从脚本文件中删除所有字符串:
    *“基线”。*\n

    这与版本数字无关。它使用不同的键,xcode 5不知道。所以,如果你想这么做,很明显你会崩溃!伟大的解决方案!但愿我能给你+10而不是+1@S1LentWarrier谢谢,另外,可能还有另一个与
    baseline
    属性的冲突,这在iOS 7中也不可用,但Xcode会在一段时间内自动添加它!我会很快更新答案!