2012-01-04 1 views
8

제목에 질문이 거의 포함되어 있습니다. 우리는 반전이 부적절하게 구성된 데이터 모델로 앱을 출시했습니다. 다음 버전에서는 데이터 모델의 새 버전으로이를 수정했지만 이전 데이터 모델 버전을 컴파일 할 때 Xcode는 여전히 경고를 표시합니다.관리되는 개체 모델을 컴파일 할 때 누락 된 역 경고를 무시하는 방법은 무엇입니까?

문서를 이전 데이터 모델에서 새 데이터 모델로 마이그레이션하는 기능을 중단하고 싶지 않습니다. 이전 데이터 모델의 반전을 변경하면 문제가 해결됩니다. 그래서 그 파일에 대한 경고를 표시하지 못하게하는 방법이 있는지 궁금합니다. 다른 사람이 와서 경고를보고 "수정"할 것을 염려합니다.

편집 : pe8ter의 의견에 따르면, 데이터 모델의 단일 개정판에 대해 MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS 옵션을 지정하려는 것 같습니다. 나는 사람들이 미래에 똑같은 실수를 저지른다면 경고가 나타나기를 원하기 때문에 프로젝트 전체 또는 심지어 모델 번들 전체로 그것을 끄고 싶지 않다.

+1

대상의 빌드 설정에서 핵심 데이터 설정을 망칠려고 했습니까? 반비례 관계가 없다는 경고를 표시하는 방법이 있습니다. – pe8ter

+0

프로젝트 설정에서 놓친 것이지만 MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS을 (를) 비활성화하려는 것 같습니다. 불행히도, 단일 모델 수정을 위해이를 수행하는 방법은 없습니다. 전체 모델 번들이 컴파일됩니다. 개별 개정은 별도로 컴파일되지 않습니다. 비록 그렇다하더라도, MOMC는 빌드 단계에서 지정된 단일 파일 컴파일러 옵션을 무시하는 것 같습니다. – Jablair

+0

이전에 잡히지 않은 새로운 XCode 버전에서 Apple이 새로운 경고를 발표했기 때문에 동일한 문제가 발생했습니다. 전체 모델에서 -w를 사용하고 공개 할 때 경고를 확인합니다. – Bjinse

답변

1

필자가 직접 해보았다고 말할 수는 없지만 MOMC_NO_INVERSE_RELATIONSHIP_WARNINGS를 원하는대로 설정하여 이전 데이터 모델에서 momc 컴파일러를 실행하는 스크립트를 작성할 수는 있습니다. 그런 다음 빌드 할 때 스크립트 실행 단계를 추가하여 스크립트를 실행하십시오. Xcode가 컴파일을 시도하지 못하도록 대상에서 이전 데이터 모델을 제거해야 할 수도 있습니다. 번들 자원 복사 빌드 단계를 사용하여 컴파일 된 모델을 빌드 된 응용 프로그램에 포함시킬 수 있습니다.

스크립트를 작성하려면 먼저 momc 모델 컴파일러를 찾아야합니다. This pageLibrary/Xcode/Plug-ins/XDCoreDataModel.xdplugin/Contents/Resources/이라고 말하지만 Xcode 4로 옮겨온 것 같습니다.

+0

momc는/Developer/usr/bin/momc 또는 Xcode가 설치된 곳이면에 위치합니다. 그러나, 나는 이것이 작동 할 것이라고 생각하지 않는다. momc는 * _v1.xcadatamodel, * _v2.xcdatamodel 등의 별도 컴파일 작업을 수행하는 대신 xcdatamodeld 번들 전체를 하나의 엔티티로 컴파일합니다.이 경우 * _v2에 대한 경고를 무시하고 나중에 개정판에 사용할 수 있도록 유지하려고합니다. – Jablair

+0

마지막 도랑 노력 : Xcode가 경고가있는 모델을 제외한 모든 모델을 빌드하도록 대상에서 기존 모델을 제거하십시오. 스크립트 빌드 단계를 사용하여 이전 모델을 포함하여 모든 모델을 컴파일하고 결과를 사용하여 Xcode가 빌드하는 모델을 대체하십시오. 그래도 작동하지 않는다면 대답은 "아니오, 단일 파일에 대한 momc 설정을 변경할 수있는 방법이 없다"고 생각해야합니다. 행운을 빕니다. – Caleb

2

이전 버전과의 호환성을 위해서만 파일을 포함하고 있으므로 변경할 필요가 없기 때문에 이미 확인하고 싶습니다. 컴파일 된 파일을 소스 제어로 복사하고 파일 복사 빌드 단계를 사용하여 올바른 위치에 넣습니다.

우리는 번들의 단일 개정판에 대해서만 이야기하고 있으므로 모형 소스에 빈 버전의 더미 버전을 유지해야 할 수 있습니다 (번호 매김이 올바르게 이루어집니다). 그러면 파일 복사 단계에서 파일을 덮어 씁니다.

+1

나는이 아이디어를 좋아한다. 얼마나 정확히 그럴 거니? –

관련 문제