Ошибка MOMC при компиляции XCode4 и модели данных

#core-data #xcode4 #datamodel

#core-data #xcode4 #datamodel

Вопрос:

Всякий раз, когда я создаю свой проект, я получаю ошибку:

 Command /Developer/usr/bin/momc failed with exit code 1
  

Я прочитал здесь сообщения об удалении посторонних версий модели данных в качестве исправления, и ничего не работает. Я в тупике, потому что ничто не меняет поведение моей сборки: она всегда завершается ошибкой с указанным выше кодом ошибки, независимо от того, есть ли у меня файлы модели CoreData или нет.

Что я сделал, чтобы вызвать эту ошибку: переключился на модель управления версиями

Что я пробовал:

  • Удаление новой версии модели данных
  • Удаление любых старых версий модели данных
  • Удаление всей модели управления версиями и использование предыдущей версии из Git
  • Полное удаление любых файлов или ссылок на файлы .xcdatamodel (coredata вообще отсутствует)

Я выполнял очистку между каждой попыткой и перезапускал XCode несколько раз. Всегда ошибка «код выхода 1» с momc.

Комментарии:

1. РЕШАЕМАЯ: откройте файл .pbxproj и вручную удалите все ссылки на .xcdatamodel. Повторно откройте XCode, выполните чистую сборку …. а затем вставьте свою более старую версию .xcdatamodel

2. Спасибо, отличный совет, была такая же проблема при переходе с XCode4.1 на 4.2

3. Потрясающие сообщения, я надеялся, что это будет найдено другими, даже если это не было помечено как «Решаемая» традиционным способом. Спасибо за голосование.

4. Закрытие Xcode и возврат через Git, затем открытие, очистка и сборка решили проблему. Затем я смог нормально выполнить версию.

Ответ №1:

Откройте файл .pbxproj и вручную удалите все ссылки на .xcdatamodel. Повторно откройте XCode, выполните чистую сборку …. а затем вставьте старую версию .xcdatamodel

Комментарии:

1. спасибо за этот совет. я был удивлен, что это решение сработало для меня, поскольку я ожидал, что посторонние файлы будут доступны моим vcs (git), но это не так. я живу и учусь.

2. Где я могу найти файл .pbxproj?

Ответ №2:

Для меня проблема была не в файле .pbxproj.

Найдите файл xcdatamodel в finder. Щелкните опцию и откройте содержимое пакета. Проверьте, есть ли внутри несколько версий, которые вы не распознаете.

Я ожидал только одну версию. Появилась вторая версия, и xcode не регистрировал ее.

Я удалил вторую версию, и теперь она работает нормально.

Комментарии:

1. Это было то, что случилось со мной. Я создал версию для тестирования, затем я отбросил ее через систему управления версиями (точнее, mercurial). В результате файл не был учтен в проекте, но все еще оставался в пакете, который, должно быть, вызывал сбой.

2. Привет, у меня есть только одна копия файла xcdatamodel. Но все равно я получаю ошибку