【发布时间】:2012-11-19 05:44:27
【问题描述】:
这个问题仍然得到很多人的支持。所以看看Update3。 once you have upvoted, commented, answered, please please please file a radar
查看 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/>
但除此之外,它还会修改或移动 .xib 文件中现有的键值对。
我在 SO 和 Google 上搜索了很多,但我没有看到很多关于这个问题的帖子。
当我升级所有笔尖以处理 iPhone5 屏幕时,我做了一个合并冲突的噩梦,这本身并不太复杂,但由于文档版本控制而产生了大量的合并冲突。
删除我不理解的代码,导致当我尝试打开 nib 时 xcode 崩溃。 (我现在已经修复了这个问题,恢复到以前的状态)
感谢任何有关如何避免此问题的建议!
更新:注意到这个问题还没有解决,并且仍然经常得到支持。我只是好奇,是否有任何故事板项目遇到同样的问题? (我还没有编写故事板)。
更新 2:对于所有遇到相同问题的人,即使您收到回复说存在现有雷达,也请提交雷达。它有助于将问题浮出水面,XCode 之神只会在那时解决它。
Update3:我仍然在这个线程上看到不少赞成票,而且苹果错误报告仍然开放。所以,在提出这个问题后,please file a radar,以及我在问题中提到的详细信息(和/或添加您自己的解释)
Update4:这个问题仍然得到很多支持。所以看看Update3。 once you have upvoted, commented, answered, please please please file a radar
Update5:根据 Apple Engineers 在 WWDC 2014 上的信息,此问题已在 Xcode6 中修复。一旦我确认此问题已得到修复,我将更新此问题(并可能关闭它)。
Update6:希望看到此问题已修复。将在 WWDC2015 上问这个问题(通过我认识的人去那里)。如果其他获得 WWDC 门票的幸运儿也能在 WWDC 2015 上做同样的事情,那就太好了
Update7:Xcode 7 在这里,这个 bug 也在这里 :( 原始雷达报告 (11533872) 仍然开放
【问题讨论】:
-
我们的团队也遇到了这个问题。我们使用 Git 进行源代码控制。我们已经开始使用 Xcode 的可视提交功能。这至少向我们展示了我们提交的所有有修改的文件。有时这可能包括我们接触过(但实际上并未修改)的 xib 文件,因此我们只需从提交中取消选中它。
-
感谢亚当的评论!甚至我们也在使用 Git 进行源代码控制。我怀疑它与使用哪种源代码控制有关。只是Xcode每次都把它搞砸了。因此,如果我确实通过进行一些更改触摸了一堆笔尖,并且错误地触摸了一些笔尖(仅通过查看笔尖),我将很难确定要从提交中取消选中哪些笔尖:-/
-
最简单的解决方法是让所有开发人员运行相同版本的 Xcode。为什么你不能这样做?
-
正如我在 OP 中所说,每个人都在运行相同版本的 XCode,并且在相同的操作系统上,在查看 nib 时仍然编辑 nib 文件。当然,在这种情况下,它不会将文件标记为已修改,但仍然很烦人。目前,我已将部署目标硬设置为 XCode 4.5,将开发目标硬设置为 Interface Builder 3.2。 (根据其他人的版本,我认为将其设置为项目 SDK 和以前的版本会搞砸)
-
提交了一份雷达报告。收到回复说这是错误 ID# 11533872 的欺骗。希望看到这个修复!
标签: xcode interface-builder xib nib document-versioning