38

这个问题仍然得到很多支持。所以看看Update3。 一旦您投票,评论,回答,请提交雷达

查看 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 之神只会在那时解决它。

更新 3:我仍然在这个线程上看到不少赞成票,而且苹果错误报告仍然开放。所以,在赞成这个问题之后,请提交一个雷达,其中包含我在问题中提到的详细信息(和/或添加您自己的解释)

Update4:这个问题仍然得到很多人的支持。所以看看Update3。一旦您投票,评论,回答,请提交雷达

更新 5:根据 Apple Engineers 在 WWDC 2014 上的信息,此问题已在 Xcode6 中修复。一旦我确认此问题已得到修复,我将更新此问题(并可能关闭它)。

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

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

4

2 回答 2

2

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

受影响的两个 Xib 键是:

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

所以,最重要的是,让团队中的每个人都更新到 Xcode 4.6.3。

于 2013-06-25T10:56:13.633 回答
1

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

Xcode: File Inspector: Interface Builder Document: Document Versioning: Development

至少到“Interface Builder 3.1”。

于 2013-02-26T10:57:07.990 回答