繁体   English   中英

从Xcode 6到Xcode 5 +的Storyboard的向后兼容性支持Xcode 6中的iOS 7

[英]Backward compatibility of Storyboards from Xcode 6 to Xcode 5 + Support iOS 7 in Xcode 6

Xcode 6下对我的项目进行一些更改后,我无法从Xcode 5打开storyboard文件(和构建项目)

由于没有办法从Xcode 6将应用程序分发到AppStore,而它处于测试阶段 - 我必须在Xcode 5下构建应用程序。

有没有办法使故事板与Xcode 5向后兼容? 我在storyboard文件的标题中找到了这个字符串:

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

我想,需要删除或编辑新的Xcode 6使用的新密钥,但无法检测到哪一个。

(恢复提交非常不可能,因为有很多变化。)

在此输入图像描述


UPD:

还有另一个问题,出现在Xcode 6中 - 它增加了iOS 7中不可用的基线约束,并且它会导致崩溃。 (Xcode甚至不总是强调这个警告!) - 修复它参考我的答案,如何删除baseline属性。

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

我使用正则表达式来查找所有虚拟字符串(支持Sublime 2的正则表达式版本)

  1. 在喜爱的文本编辑器中打开您的stroyboard文件。
  2. 找到所有使用正则表达式(\\w)Margin"
  3. 用模式替换所有出现的事件: \\1"
  4. 从文件的开始删除<capability name="Constraints with attributes relative to the layout margin" minToolsVersion="6.0"/>
  5. 通过模式在storyboard文件中查找并删除所有字符串: .*"baseline".*\\n
  6. 修复错位:在Xcode 5中打开文件 - 并更新所有视图的约束。
  7. 而已! 利润!

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

要解决此问题 - 通过模式从故事板文件中删除所有字符串: .*"baseline".*\\n

在编辑器中打开您的故事板。 右键单击>在编辑器中打开。 复制你的ui xml,留下你可以找到版本和故事板ID的标题。

接下来,将xml内容粘贴到xcode 5 storyboard文件中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM