Xcode에서 이전 / 사용하지 않은 데이터 모델 버전을 삭제하는 방법


163

Xcode에서 이전 데이터 모델을 어떻게 삭제합니까? 메뉴에서 옵션이 비활성화되어 있습니다. (삭제하려는 모델은 공개되지 않았으며 임시 개발 모델입니다.)


"편집"메뉴에서 "삭제"선택이 비활성화되어 있습니까 (파일 관리자에서 기존 데이터 모델 파일이 선택된 상태)? 아니면 다른 의미가 있습니까?
Michael Dautermann

예, 편집 메뉴 및 마우스 오른쪽 버튼 클릭 메뉴 (및 찾을 수있는 모든 메뉴)에서 삭제 선택이 비활성화됩니다. 일부 사람들이 이전 / 사용하지 않은 버전을 삭제하기 위해 이전 xcode로 가고 있지만 알고있는 버전이 없습니다.
SAHM

Michael, xCode 4에서이 작업을 수행 할 수 있습니까?
SAHM

예 ... XCode 4 프로젝트에서 "삭제"메뉴 옵션이 비활성화 된 것을 본 적이 없습니다.
Michael Dautermann

xcdatamodel을위한 것입니까? 다른 사람들은 xcdatamodels XCode 4를 삭제하는 것과 같은 문제를 겪었습니다. 방금 해결책이 게시되지 않았습니다.
SAHM

답변:


374

그것은 해킹이지만 이것은 나를 위해 일했습니다 :

  1. Xcode에서 모델의 현재 버전을 유지하려는 모델로 설정하십시오.
  2. 프로젝트에서 .xcdatamodeld를 제거하십시오 (오른쪽 클릭-> 삭제-> 참조 만 제거 ).
  3. Finder에서 .xcdatamodeld 패키지의 컨텐츠를 표시하십시오 (오른쪽 클릭-> 패키지 컨텐츠 표시).
  4. 더 이상 원하지 않는 .xcdatamodel 파일을 삭제하십시오.
  5. .xcdatamodeld 파일을 프로젝트에 다시 추가하십시오.

따라서 프로젝트 메타 데이터 파일을 수동으로 수정할 필요가 없습니다.


2
이 기술을 사용해 보았고 모델 버전의 이름이 지정된 방식으로 인해 모델 버전이 잘못 정렬되고 xcdatamodel 파일을 프로젝트에 다시 추가 할 때 잘못된 기본 버전이 선택되었습니다. 모델 버전이 최대 38 개이고 기본 버전 이름을 변경하지 않았기 때문에 버전 이름이 "MY_APP 37.xcdatamodel"입니다. 38을 삭제하고 싶었습니다. 가져 오기시 "MY_APP 10.xcdatamodel"이 처음으로 기본값으로 선택되었음을 의미하는 어휘 순서로 가져 왔습니다. 내 경우에는 이상적이지 않습니다.
Mike

1
Mike-중요한 문제없이 텍스트 편집기에서 project.pbxproj를 다시 주문할 수 있었지만 같은 문제입니다. 여전히 이상적이지 않습니다.
Ian Kershaw

1
Xcode 5.1.1에서는 작동하지 않습니다. 이전에는 많은 작은 모델 변경 및 증분 된 모델 버전 번호로 인해 경량 자동 마이그레이션이 올바르게 작동했습니다. 그러나이 방법을 사용하여 외부의 "개발 전용"모델을 모두 제거하려고하면 "오류 : 마이그레이션을위한 매핑 모델을 찾거나 자동으로 유추 할 수 없습니다"라는 오류가 발생합니다.
Dalmazio

1
6.4에서는 참조를 제거 할 수있는 옵션이 없습니다. 방금 삭제되었습니다. 나머지 단계는 효과가있는 것으로
보임

1
이것은 Xcode 10.2.1에서 작동하는 것으로 보입니다. 내 마이그레이션은 일부 속성 이름이 변경되었으므로 중요한 것은 없습니다.
Gavin

35

방금이 작업을 수행해야한다는 것을 알았습니다. 새 모델 버전을 만든 다음에는 필요하지 않다는 것을 깨달았습니다. Xcode에서 그것을 삭제할 수있는 방법이 없다는 사실에 놀랐습니다. 여전히 그것을 제거하려면 다음을 수행하십시오.

먼저 현재 모델 버전이 아닌지 확인했습니다. 그런 다음 Finder로 가서 * .xcdatamodeld 파일을 찾았습니다. 마우스 오른쪽 버튼을 클릭하고 패키지 내용 표시를 클릭하십시오. 거기에 실제 모델 파일이 있으며 삭제할 수 있습니다.

여전히 Xcode에서 제거되지 않으며 파일 및 그룹에서 빨간색으로 표시됩니다. 이 문제가 발생하지 않도록하려면 기본 * .xcodeproj 파일에서 Finder 및 Show Package Contents로 돌아가십시오 (먼저이 백업이 있는지 확인하십시오). 거기에서 project.pbxproj를 열고 편집하여 모델 버전 이름을 찾으십시오 (제 경우에는 "간격 8"). 나를 위해 그것은 두 개의 별도 줄에 나타났습니다. 이 줄을 제거하고 Xcode에서 완전히 제거했습니다.


1
@Daniel_Wood, 예, 수동으로 수행하는 방법을 찾았지만 조심하십시오. 그것은 라인 아래로 문제를 일으킬 수 있습니다 ...이 작업을 여러 번 다시 수행해야하며 때로는 활성 버전과 비활성 버전을 전환하는 경우가 있습니다. 그런 다음 올바른 버전을 재설정하면 이동하지 않습니다. 더 많은 문제를 일으키는 목록의 상단 (때로는)! 그래도 입력 주셔서 감사합니다. 그들이이 기능을 제거했을 것이 기괴한 것 같습니다. 우리는 절대로 .xcodeproj 파일로 들어가서는 안됩니다!
SAHM

2

이것은 전체 모델을 제거하고 다시 추가 할 때 발생하는 순서 문제없이 XCode 10.3에서 나를 위해 일했습니다.

  1. 삭제하려는 모델 이외의 모델 버전을 선택하십시오.
  2. XCode에서 .xcdatamodeld 파일을 마우스 오른쪽 버튼으로 클릭하고 'Show in Finder'를 선택하십시오.
  3. XCode를 닫습니다.
  4. 파인더에서 동일한 파일을 마우스 오른쪽 버튼으로 클릭하고 '패키지 내용 표시'를 선택하십시오.
  5. 제거하려는 모델의 이름을 기록한 다음 Finder에서 삭제하십시오.
  6. 여전히 Finder에서 프로젝트 파일 (.xcodeproj)로 이동하십시오.
  7. 마우스 오른쪽 버튼을 클릭하고 Atom으로 엽니 다 또는 다른 편집기로 .
  8. '프로젝트'창에서 project.pbxproj 파일을 엽니 다.
  9. 제거한 모델 이름이 포함 된 모든 줄을 제거하십시오 (예 : "ABC 17.xcdatamodel"). 다음과 비슷한 두 줄이 있습니다.

    9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * / = {isa = PBXFileReference; lastKnownFileType = 래퍼 .xcdatamodel; 경로 = " ABC 17.xcdatamodel "; sourceTree = ""; };

    9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /,

    세 번째 줄을 찾으면 다음과 같습니다.

    currentVersion = 9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /;

    이는 현재 선택된 모델임을 의미합니다. 이 줄을 삭제하지 마십시오. 텍스트를 다른 모델 버전으로 변경하십시오.

  10. XCode를 다시여십시오.


-4

내 대답은 전혀 문제가 아니지만 빠르고 효과가 있습니다. 자식을 사용하는 사람들을 위해. 스테이지되지 않은 변경 사항은 버릴 수 있습니다.

git stash save --keep-index

그런 다음 git stash drop원하는 경우 명령으로 해당 숨김을 삭제할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.