使用XCode4和数据模型编译时出现MOMC错误

12
无论何时我构建我的项目,都会收到以下错误消息:
Command /Developer/usr/bin/momc failed with exit code 1

我在这里读到了关于删除多余数据模型版本以修复问题的帖子,但没有任何方法奏效。我感到困惑,因为无论我是否拥有CoreData模型文件,我的构建行为始终会失败并显示上述错误代码。

导致此错误的原因:切换到版本模型

我尝试过:

  • 移除新的数据模型版本
  • 移除任何旧版本的数据模型
  • 移除整个版本控制模型,并使用先前从Git获取的版本
  • 完全删除任何对.xcdatamodel文件的文件或引用(没有任何coredata)

我在每次尝试之间都进行了清理构建,并重新启动了XCode。但是始终出现“退出码1”错误与momc相关。


3
解决方案:打开.pbxproj文件,手动删除所有对.xcdatamodel的引用。重新打开XCode,进行“Build Clean”操作,然后将旧版本的.xcdatamodel文件拖入项目中。 - beeudoublez
谢谢,非常好的建议。在从XCode4.1迁移到4.2时,我也遇到了同样的问题。 - DaGaMs
很棒的DaGaMs,我希望其他人能够找到它,即使它没有以传统方式标记为“已解决”。感谢您的点赞。 - beeudoublez
关闭Xcode并通过Git还原,然后打开,清理和构建解决了问题。然后我就能够正常进行版本控制了。 - David James
2个回答

19

打开.pbxproj文件,手动删除所有对.xcdatamodel的引用。重新打开XCode,进行清理构建...然后将旧版本的 .xcdatamodel拖入其中。


谢谢这个提示。我很惊讶这个解决方案对我有效,因为我本来期望我的版本控制系统(Git)会暴露这些多余的文件,但它们没有。我又学到了新知识。 - Mark Hamlin
我在哪里可以找到.pbxproj文件? - Avinash Jadhav

16

对我来说,问题不在于.pbxproj文件中。

在Finder中查找xcdatamodel文件。选项点击并打开包内容。检查是否有多个版本,你不认识其中的一些。

我原本只期望有一个版本。第二个版本不知何时出现,而xcode没有注册它。

我删除了第二个版本,现在它可以正常工作了。


这就是我遇到的情况。我创建了一个版本进行测试,然后通过源代码控制(具体来说是Mercurial)将其丢弃。结果该文件未被纳入项目中,但仍留存在软件包中,这可能导致崩溃。 - Rembrandt Q. Einstein
嗨,你好。我只有一个xcdatamodel文件的副本,但是仍然出现错误。 - Avinash Jadhav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接