升级到Lion(Xcode4.1)后出现“数据模型版本编译”..错误

时间:2011-07-22 09:41:47

标签: objective-c xcode4 compiler-errors osx-lion

自从昨天升级到Lion(10.6-> 10.7)以来,我一直无法编译在升级之前编译没有问题的项目。

这个项目最近的变化甚至没有造成这个错误:如果我从几天或一周前从SVN结账了一个版本的项目,我在构建时会遇到同样的错误:

"Command /Developer/usr/bin/momc failed with exit code 6",扩展为以下内容:

构建错误:

DataModelVersionCompile /Users/ian/Library/Developer/Xcode/DerivedData/inventory-gtvznzuhomhlakbdpocaqwnrihhx/Build/Products/Debug-iphonesimulator/inventory.app/inventory.momd inventory/inventory.xcdatamodeld
cd /Users/ian/AppsDev/uk.co.isurvey-inventory/ios/inventory/trunk/inventory
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/usr/bin/momc -XD_MOMC_SDKROOT=/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk -XD_MOMC_IOS_TARGET_VERSION=4.3 -MOMC_PLATFORMS iphonesimulator -MOMC_PLATFORMS iphoneos -XD_MOMC_TARGET_VERSION=10.6 /Users/ian/AppsDev/uk.co.isurvey-inventory/ios/inventory/trunk/inventory/inventory/inventory.xcdatamodeld /Users/ian/Library/Developer/Xcode/DerivedData/inventory-gtvznzuhomhlakbdpocaqwnrihhx/Build/Products/Debug-iphonesimulator/inventory.app/inventory.momd

2011-07-21 19:24:44.954 momc[4436:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithData:options:error:]: nil argument'
*** First throw call stack:
(
0   CoreFoundation                      0x00007fff8e411986 __exceptionPreprocess + 198
1   libobjc.A.dylib                     0x00007fff8d0d5d5e objc_exception_throw + 43
2   CoreFoundation                      0x00007fff8e4117ba +[NSException raise:format:arguments:] + 106
3   CoreFoundation                      0x00007fff8e411744 +[NSException raise:format:] + 116
4   Foundation                          0x00007fff8c761310 -[NSXMLDocument initWithData:options:error:] + 89
5   momc                                0x0000000102f04a2c momc + 10796
6   momc                                0x0000000102f04fe8 momc + 12264
7   momc                                0x0000000102f058f0 momc + 14576
8   momc                                0x0000000102f03d20 momc + 7456
9   ???                                 0x000000000000000a 0x0 + 10
)
terminate called throwing an exception
Command /Developer/usr/bin/momc failed with exit code 6

进一步说明:

AFAIK,唯一的区别是我现在正在使用Lion,以及Xcode 4.1的Lion版本(我在此之前使用Xcode 4.1 for Snow Leopard)。

我已删除/ Developer /,我已重新安装了几次,并重新下载了App Store Xcode安装程序,以防它已损坏。

如果我使用Xcode创建 新的 项目(并使用Core Data,我认为这与构建我的项目的任何问题有关),它构建并运行良好:也许我需要做些什么来修复我的真实项目?

任何建议都会很精彩! 干杯, 伊恩

4 个答案:

答案 0 :(得分:36)

我遇到了同样的问题,OS X Lion 10.7.1,Xcode 4.1。

通过从* .xcdatamodelid目录中删除Xcode中未显示的所有* .xcdatamodel目录,可以解决该问题。这些目录出现在Xcode中重命名* .xcdatamodel之后。

删除可以在终端中完成,通过Finder中的“显示包内容”菜单或右键单击Xco​​de中的xcdatamodel并选择“在Finder中显示”。

答案 1 :(得分:1)

重新启动XCode并删除Derive Data Folder中的所有数据。

答案 2 :(得分:0)

有趣的是,我发现在安装 Xcode 的新版本后我遇到了这种情况。它是由挂载DMG的Xcode运行引起的。我一直追问这个问题,直到我最终发现它使用DMG上的工具而不是复制到应用程序的文件进行构建。 通过弹出Xcode DMG,它解决了问题。 以为我会发布这个以防万一其他人受益。 我怀疑在这里和其他线程上发布的一些修复程序在某些情况下可能会重新启动卸载DMG

答案 3 :(得分:0)

在更新OSX(次要更新)后,我突然在我的CI上出现了这个问题。 Jenkins无法构建任何Obj-C项目,并且始终以相同的错误停止(不依赖于项目/数据模型)。​​

修复方法是简单地删除derivedData文件夹并重新启动计算机。

rm -rf ~/Library/Developer/Xcode/DerivedData/*
sudo reboot