Rename xcdatamodel file

I have been having the same problem with Xcode 4. Don't know what the behaviour is in Xcode 3.

Firstly, when you add a core data model in xcode, you actually get a .xcdatamodeld file which is a package like the .xcodeproj file. In finder, you can right click it and "Show Package Contents". You'll see it contains a .xcdatamodel file.

It seems to me you can't rename it fully using xcode. Xcode will change the name of the package file (the momd) as you see it in the UI, but on the file system it has not actually changed.

The nil model error you get is because it can't find the newfilename momd since it still has the old name on disk. (I guess)

I worked around this by creating a new model with the name I wanted, then in the existing model, you can click-drag and select your entities, then just paste them into the new model file. You can then delete the old one and commit all the changes to your SCM.


There is a hidden file called .xccurrentversion which should be in the same location as your whatever.xcdatamodeld file. Inside there is a reference to your model which needs to be updated with the new name.

In some cases, you'll have to remove the .xcdatamodeld file from the project and add it again to make it work.


Thanks to all of you for helping me finally nail this one down. Here's how I fixed this after renaming my project in Xcode 4.2:

1) Delete the reference to the *.xcdatamodeld file in your project. If it's like mine, an editor won't load when you select it. This tells me a link was broken in the rename.

2) Right-click on the .xcdoeproj file for your project and select 'Show Package Contents'.

3) Drag the *.xcdatamodeld file you find there back into your project. Done.

My app buil