Xcode 如何从自动更新中禁用Interface Builder文档版本控制?

Xcode 如何从自动更新中禁用Interface Builder文档版本控制?,xcode,interface-builder,xib,nib,document-versioning,Xcode,Interface Builder,Xib,Nib,Document Versioning,这个问题仍在获得大量选票。请看更新3。 查看nib/xib会修改文件,迫使我提交更改或撤消更改。在出现合并冲突之前,这不是问题 详情: 我在一个由5名iOS开发人员组成的团队中工作,在XCode的最后几个版本中,我们遇到了一个问题,即当任何人打开文件时(不做任何更改),会接触/修改.xib/nib文件 如果一个开发人员认为“去他妈的,让我签入xcode所做的任何修改”并签入,它不会就此停止。当另一个开发人员查看该nib时,两台不同机器(使用相同版本的XCode和MacOS)上的相同文件将再次被触

这个问题仍在获得大量选票。请看更新3。

查看nib/xib会修改文件,迫使我提交更改或撤消更改。在出现合并冲突之前,这不是问题

详情: 我在一个由5名iOS开发人员组成的团队中工作,在XCode的最后几个版本中,我们遇到了一个问题,即当任何人打开文件时(不做任何更改),会接触/修改.xib/nib文件

如果一个开发人员认为“去他妈的,让我签入xcode所做的任何修改”并签入,它不会就此停止。当另一个开发人员查看该nib时,两台不同机器(使用相同版本的XCode和MacOS)上的相同文件将再次被触摸/修改

通常在.xib文件中修改的内容是

    <key>com.apple.ibtool.document.version-history</key>
<dict>
    <key>interface-builder-version</key>
    <dict>
        <key>com.apple.InterfaceBuilderKit</key>
        <string>2844</string>
        <key>macosx.version</key>
        <string>12C60</string>
    </dict>
</dict>
<key>com.apple.ibtool.document.warnings</key>
<dict/>
com.apple.ibtool.document.version-history
界面生成器版本
com.apple.InterfaceBuilderKit
2844
macosx.version
12C60
com.apple.ibtool.document.warnings

但除此之外,它还修改或移动.xib文件中现有的键值对

我在SO和Google上搜索了很多,但我没有看到很多关于这个问题的帖子

当我升级所有NIB以处理iPhone5屏幕时,我经历了一场合并冲突的噩梦,该屏幕本身并不太复杂,但由于文档版本控制,出现了大量合并冲突

当我试图打开nib时,删除我不理解的代码导致xcode崩溃。(我现在已经修复了这个问题,恢复到以前的状态)

如有任何关于如何避免此问题的建议,我们将不胜感激

更新:我注意到这个问题还没有解决,而且仍然经常获得投票。我只是好奇,故事板项目中有没有遇到过同样的问题?(我还没有制作故事板)

更新2:对于所有遇到相同问题的人,请提交一个雷达,即使你得到的答复是有一个现有的雷达。这有助于将问题推到最高层,XCode之神只有在那时才能解决它

更新3:我仍然看到很多关于这个线程的投票,苹果bug报告仍然是开放的。因此,在对这个问题进行投票后,,以及我在问题中提到的细节(和/或添加您自己的解释)

更新4:这个问题仍然有很多人投票支持。看看Update3

更新5:根据2014年WWDC上苹果工程师提供的信息,这个问题已经在Xcode6中修复。一旦我确认问题已经解决,我会更新这个问题(可能会关闭它)

更新6:希望看到这个问题得到解决。将在WWDC2015上问这个问题(通过我认识的人)。如果其他获得WWDC门票的幸运儿也能在2015年WWDC上获得同样的门票,那就太好了

更新7:Xcode 7在这里,这个bug也在这里:(原始雷达报告(11533872)仍然打开

尝试更新XIB的“文档版本:开发”设置:


至至少“Interface Builder 3.1”.

Xcode的4.6.3版解决了这个问题。但是,正如注释所述,您都需要运行相同的版本。如果四名开发人员在4.6.3上,一名在以前的版本上,那么该开发人员将遇到相同的问题。但是,如果他们不提交该更改,则不会影响其他开发人员

受影响的两个Xib键为:

<string key="IBDocument.AppKitVersion">1187.39</string>
<string key="IBDocument.SystemVersion">12E55</string>
1187.39
12E55

所以,底线是,让团队中的每个人都更新到Xcode 4.6.3。

我们团队中也遇到了这个问题。我们使用Git进行源代码控制。我们已经开始使用Xcode的可视化提交功能。这至少向我们展示了我们提交的所有经过修改的文件。有时,这可能包括我们接触过的xib文件ed(但未实际修改),所以我们只是从提交中取消选中它。感谢Adam的评论!甚至我们都在使用Git进行源代码管理。我怀疑这与使用什么样的源代码管理有关。只是Xcode每次都会把它弄糟。所以如果我做了一些更改而触碰了一堆NIB,又错碰了几个NIB(只是通过查看NIB),我很难确定哪些是要从提交中取消选中的:-/最简单的修复方法是让您的所有开发人员运行相同版本的Xcode。为什么您不能这样做?正如我在OP中所说的,每个人都运行相同版本的Xcode,并且都在相同的操作系统上,在查看nib时仍然编辑nib文件。当然,在这种情况下,确实如此没有将文件标记为已修改,但仍然很烦人。目前,我已将部署目标硬设为XCode 4.5,将开发目标硬设为Interface Builder 3.2。(根据其他版本,我认为将其设置为project SDK和以前的版本会把它搞砸)在雷达上提交了一份报告。得到的答复说这是一个错误ID#11533872的副本。希望看到这个问题得到修复!谢谢你的回答。但是,正如我在对我的问题的评论中提到的,我已经将它硬设为3.2,并且仍然看到了这个问题。不管你是将它设置为特定版本,还是让它设置为文档版本的最新版本ng,这个错误仍然存在。对不起,这里是新的。你是对的。设置似乎帮助了我的项目一段时间,然后又发生了……一些Xib;这次似乎是随机的。我仍然在4.6.3的故事板中体验到这一点。是的,如果你打开一个Xcode版本早于4.6.3的Xib,你会的。这就是为什么每个人都这么做的原因您的团队成员需要使用相同的版本。这个bug仍然存在于XCode 5.0上!是的,甚至在故事板上……在那里它更痛苦。
<string key="IBDocument.AppKitVersion">1187.39</string>
<string key="IBDocument.SystemVersion">12E55</string>