Xcode에서 실제 폴더로 파일 이동


177

프로젝트를 시작할 때 리터럴 폴더 대신 Xcode에서 그룹을 사용하는 것이 좋았습니다. Xcode의 브라우저를 사용하여 모든 것에 액세스했기 때문에 모든 것이 잘 정리되어 행복했습니다.

그러나 이제 프로젝트가 버전 제어를 위해 공유 될 예정이므로 프로젝트 폴더 자체는 터미널 (약 300 개 파일 중 절반 이상이 그래픽)을 통해 스캔하려는 사람들에게 공포의 쇼입니다.

이제 물건을 재구성하고 실제 폴더를 만들고 Xcode로 가져 오려고합니다. 불행히도 Xcode는 그룹과 같은 방식으로 작업 할 수 없습니다. 예를 들어, 실제 추가 된 폴더 (노란색이 아닌 파란색)를 마우스 오른쪽 단추로 클릭하고 기존 파일을 추가하도록 선택하면 실제로 해당 폴더에 파일이 저장되지 않고 루트에 저장됩니다.

마찬가지로, 가짜 폴더 (그룹)에서 실제 폴더로 파일을 이동할 수 없습니다 : Xcode는 실제 폴더를 물건을 옮길 수있는 유효한 장소로 간주하지 않습니다.

내가 무엇을 놓치고 있습니까? 그룹을 사용하는 방식으로 폴더를 사용할 수 있도록 Xcode를 설득하려면 어떻게해야합니까? 여기에 비슷한 질문에 대한 답변 이 있지만 기존 파일로 작업하고 있기 때문에 실제로 문제를 해결하지 못합니다.

답변:


176

2017 년에 대한 현대적인 (그리고 단순한 방법!) 접근법 (Xcode 6, 7, 8, 때로는 9, 때로는 자동으로 수행되기 때문에) :

많은 파일을 새 폴더로 옮기고 하위 계층을 유지하는 경우 실제로 각 파일을 개별적으로 이동하는 것보다 훨씬 쉽습니다.

  1. Xcode 폴더 트리에서 새 그룹을 만들고 원하는대로 파일을 구성하십시오.
  2. Finder에서 일치하는 물리적 폴더 트리를 생성하고 1 단계에서 수행 한 것과 일치하도록 물리적 파일을 구성하십시오.
  3. Xcode의 모든 참조는 이제 빨간색이어야합니다 (괜찮습니다!).
  4. ID 및 유형 관리자에서 재배치하려는 Xcode 의 그룹 을 선택한 다음 정보 분할 창에서 폴더 아이콘을 클릭하십시오.

  5. Finder 선택 대화 상자에서 2 단계에서이 그룹에 대해 생성 한 동등한 새 폴더를 찾으십시오. 이제 해당 그룹 내의 모든 파일이 자동으로 다시 검색됩니다!

멋지지 않습니까? 생성 한 새 그룹마다이 5 단계를 한 번만 반복해야합니다 (각 파일을 개별적으로 재배치하는 것보다 낫습니다).

보너스 포인트!

실수로 이동을 망쳐 놓았는데 이제는 파일이 빨간색이며 찾을 수 없습니다 : 깨진 여러 파일을 선택 하고 4 단계의 스크린 샷에서 동일한 폴더 아이콘을 사용하여 다음을 포함하는 올바른 폴더를 찾으십시오 파일이 없으면 누락 된 경로를 자동으로 해결합니다.


3
그러나 이렇게하면 Git에서 파일이 추적되지 않습니다. 물론 나는 항상 파일을 읽을 수는 있지만 뭔가를 놓치고 있습니까?
SleepNot

2
@ jeraldo 어떤 git의 풍미를 사용하고 있는지 확실하지 않지만 그 문제는 결코 없었습니다. 그러나 쉽게 할 수 있습니다 git add ..
brandonscript

나는 무언가를 놓치고 있는데 그것이 무엇인지 잘 모르겠습니다. 어쩌면 (1) 단계에서 "파일을 파일로 정리합니다"라는 단어의 의미를 이해하고 있지 않습니까? "드래그 앤 드롭 등으로 파일을 그룹에 추가"를 의미한다고 가정합니다. 그러나이 작업을 수행하면 물론 Xcode는 파일을 인식하고 3 단계에서 설명한 것처럼 파일을 빨간색으로 표시하지 않습니다. 내가 뭘 잘못하고 있는지 알아?
hkatz

2 단계에서와 같이 실제 파일을 이동 했습니까?
brandonscript

1
아, 알아 냈어! 단계 (2)는 나에게 너무 비밀 스럽습니다. 다시 작성하는 경우 "일치하는 실제 폴더 트리 생성 후 Xcode의 Finder에서 표시 명령을 사용하여 단계 (1)에서 새 그룹에 추가 한 파일을 찾아서 실제로 이동시킵니다. 방금 만든 폴더에 넣습니다. " 뭔가 그런 ...
hkatz

119

2017 년 6 월 추가 편집 : Xcode 9는이를 자동으로 수행하므로 특별한 노력이 필요하지 않습니다. 이 답변과 Brandon 은 Xcode 8 이전 버전에만 적용됩니다.

2016 년 12 월 편집 : 아래 Brandon의 답변이 더 나은 솔루션입니다. 이 답변이 2010 년에 만들어 졌을 때 이것은 내가 찾을 수있는 유일한 옵션이었습니다. 나는 이제 Brandon의 대답을 제안 한다.


파일을 실제 폴더로 옮기는 것이 확실하지는 않지만 확실히 가능하다는 것이 밝혀졌습니다.

Xcode 조직 파일 및 폴더 (핵심 데이터 모델 객체-iPhone) 에서 질문에 대한 기본 정보를 얻었 지만 그 과정에서 중요한 것을 배웠습니다.

과정

파일 이동은 여러 하위 단계로 구성된 2 단계 프로세스입니다.

  1. 파일을 원하는 위치에 Xcode에게 알려주십시오 .

    • 이동하려는 파일 또는 파일 그룹을 마우스 오른쪽 버튼으로 클릭 하고 상황에 맞는 메뉴에서 정보 입수 를 선택 하십시오 . 그룹 정보파일 정보] 윈도우가 나타납니다.

    • 경로 영역 에서 창의 맨 오른쪽에 있는 선택 단추를 클릭하십시오 . 대화 상자가 나타납니다.

    • 파일을 이동하려는 폴더로 이동하십시오. 필요한 경우 새 폴더를 만듭니다 . 대화 상자의 오른쪽 하단에서 선택 버튼을 클릭 한 다음 그룹 정보 / 파일 정보 창 을 닫습니다 .

    • 그룹의 파일 / 파일 이름은 Xcode가 지정한 위치에서 찾을 수 없음을 나타 내기 위해 빨간색으로 바뀝니다.

  2. 실제 파일을 이동

    • Finder (또는 Git)에서 1 단계에서 선택한 파일을 원하는 실제 폴더로 이동하십시오.

    • Xcode로 다시 전환하십시오. 파일 / 그룹이 모두 검은 색으로 바뀌어야합니다. 여전히 빨간색이 있다면 무언가를 올바른 폴더로 옮기는 것을 놓친 것입니다.

이 프로젝트에서 ~ 300 파일을 조정하면서 몇 가지 중요한 사항을 배웠습니다.

  • 일부 파일은이 방법으로 이동을 거부합니다. 즉, 새 대상으로 이동 하면 새 폴더 버튼 과 마찬가지로 선택 버튼이 비활성화됩니다 . 해결책은 왜 차이가 나는지 모르겠지만 먼저 Xcode를 사용하여 해당 파일을 그룹에 넣은 다음 (파일을 마우스 오른쪽 / 컨트롤 클릭하고 그룹을 선택하고 그룹 이름을 지정하십시오) 새 위치로 그룹화하십시오. Finder에서 파일을 실제로 이동 한 후 파일을 그룹에서 제거 할 수 있습니다 (새 상위 그룹 / 폴더로 파일을 끌어 그룹을 삭제).

  • 여러 파일에 대해 2 단계를 완료 한 후 몇 분마다 중지하고 빌드하십시오. 빌드는 지금까지 무언가를 망쳤는지 알려주므로 너무 많은 피해를 입기 전에 다시 돌아가서 쉽게 고칠 수 있습니다.

  • 파일이 원하는 위치로 이동하지 않는 경우 (클래스 폴더에서 초기에 생성 된 일부 파일을 이동하는 데 시간이 걸리는 경우) 파인더의 이전 위치에서 파일을 드래그하여 데스크탑과 같은 편리한 곳에서 Xcode에서 참조를 삭제 한 다음 오른쪽 / 제어 클릭하여 기존 파일 추가 옵션을 통해 다시 가져옵니다 .

  • 과거에 Xcode를 사용하여이 프로젝트에서 휴지통으로 이동하지 않고 파일에 대한 참조를 삭제 한 경우 이동하지 않아도 그대로 앉아있는 파일을 찾을 수 있습니다. 내가 이동했던 현재 파일 그룹의 이름과 더 이상 연결되지 않은 오래된 파일의 이름을 혼동하여 Xcode가 밀도가 있다고 생각했기 때문에 Xcode가 가져 오도록 주장하면서 내가 한 일을하지 않도록주의하십시오.

이것이 미래의 사람에게 도움이되기를 바랍니다. 그것이 어렵고 때로는 까다로웠다는 것에 놀랐습니다.


2
같은 디렉토리에있는 모든 파일을 갖는 것은 실제로 나를 괴롭 혔습니다. 감사합니다!
Curtis Shipley

Finder에서 원하는대로 디렉토리 구조를 재 배열하고 프로젝트에서 "빨간 파일"을 모두 제거한 다음 "group in folders"옵션을 사용하여 프로젝트에 다시 추가하십시오
bshirley

@bshirley 매우 사실이며, 메인 디렉토리에있는 모든 파일이 프로젝트에 있어야한다면 시간을 많이 절약 할 수 있습니다. 불행히도 여러 사람이 참여하거나 시간이 지남에 따라 릴리스가 많은 프로젝트의 경우 프로젝트에 추가해서는 안되는 파일이 얼마든지있을 수 있습니다. 이 경우 어떤 것을 제거하기 위해 제거했는지 또는 유사한 것을 추적해야합니다.
Matthew Frederick

11
xcode 4에서는 다른 작업을 수행해야했습니다. 마우스 오른쪽 버튼을 클릭 할 때 상황에 맞는 '정보 얻기'링크가 표시되지 않았습니다. 대신 신원 및 유형보기 (아마도 내가 알지 못하는 이름)를 표시해야했습니다. xcode4 헤더 표시 줄의보기 옵션에서 가장 오른쪽에있는 버튼입니다. 먼저 파일 시스템에서 파일을 옮긴 다음 경로 옆의 이상한 아이콘을 클릭하고 xcode에 새 파일의 위치를 ​​알려줍니다.
Evan Pon

6
파일 이동의 문제점은 이미 SVN 제어를 받고있는 경우 버전 또는 Cornerstone과 같은 앱을 사용하여 파일을 이동해야한다는 것입니다. 그렇지 않으면 끔찍한 버전 제어 문제가 발생합니다! 애플이 "그룹"아이디어를 버리고 모든 것을 이클립스 라 할 수있는 실제 폴더에
넣기를 바란다

104

Xcode 5 또는 Xcode 6에서 :

  1. Finder에서 그룹에 매핑되는 폴더 생성
  2. Finder에서 해당 폴더로 파일 이동
  3. 왼쪽의 Xcode 사이드 바에서 빨간색 인 각 파일을 선택하십시오.
  4. 오른쪽 사이드 바를 표시하려면 "유틸리티 표시 / 숨기기"단추를 클릭하십시오 (그림 참조).
  5. "ID 및 유형"에서 작은 버튼을 클릭하고 파일 위치를 선택하십시오 (그림 참조).

여기에 이미지 설명을 입력하십시오

건배.


1
일부 사용자에게 헤더 정보가 사전 컴파일 된 후 변경되었다는 오류가 발생하면 제품을 정리하면 문제가 해결됩니다.
퀀텀

Xcode 5.1.1 에서이 접근법을 따라 헤더 파일을 실제 폴더로 옮겼습니다. 파일을 옮길 수 있습니다. 그러나 Xcode는 프로젝트를 빌드하는 동안 "파일을 찾을 수 없습니다"라고 말합니다. 도와주세요.
Rashmi Ranjan mallick

22

XCode의 끔찍한 디자인을 해결하는 가장 안정적인 방법은 두 가지 이유로 Finder에서 모든 파일을 구성하는 것입니다.

  1. XCode의 GUI와 달리 Finder는 "실수"를하지 않습니다
  2. Finder에서 구성한 후에는 전체 Finder 폴더를 XCode로 끌어다 놓을 수 있습니다. ... 노력없이 원하는대로 정확하게 수행합니다.

기존 XCode 파일을 이동할 때도 이렇게하는 것이 더 빠릅니다.

  1. Finder에서 파일을 선택하십시오.
  2. Finder에서 폴더를 생성하십시오
  3. 폴더로 드래그 앤 드롭 (자동으로 이동)
  4. Finder 폴더를 Xcode로 드래그 앤 드롭 (자동 : Xcode 폴더 생성, Finder 폴더의 모든 파일 추가)
  5. cmd- 이제 Xcode에 보이는 모든 "빨간색"파일을 선택하고 (이동했기 때문에) 삭제 키를 누르십시오

주의 : XCode 3에서는 종종 버그가 많고 프로젝트를 손상시킬 수 있기 때문에 "하위 그룹으로 드래그 한 폴더 만들기"옵션을 사용하지 않습니다. Apple (IMHO)은이 기능을 내부적으로 사용하지 않습니다. 그렇지 않으면 결코 버그가 없었을 것입니다. Apple이 물건을 사용하지 않으면 일반적으로 그것을 사용하는 것이 안전하지 않습니다-테스트에 좋지 않습니다 :)


2
나는 이것을 내일 노력하고있다. 이것은 내가 찾던 간단한 해결책이었다. 왜 그렇게 힘들게 했습니까? 방금 파일 시스템을 미러링하면 훨씬 덜 혼란 스러웠을 것입니다. 감사!
delux247

이것이 내가 시도한 네 번째 솔루션이었고 xcode 5.1.1로 작업 할 수있는 유일한 솔루션이었습니다. 또한 어떤 이유로 든 내 범주에서 작동하지 않습니다. 나는 문자 그대로 휴지통으로 옮기고 휴지통에서 다시 가져 와서 xcode에 다시 추가해야했습니다.
user3344977

21

github 에는 명령 행 도구 ( "synx")를 간단하게 설정하고 사용할 수 있으며 여기에 필요한 것을 정확하게 수행 할 수 있습니다.

파인더의 Xcode 프로젝트 폴더를 재구성하여 프로젝트의 Xcode 그룹과 일치시킵니다.

https://github.com/venmo/synx에서 찾을 수 있습니다.

업데이트 : XCode 9 는 기본적으로이 기능을 지원합니다. 따라서 더 이상 다른 도구를 사용할 필요가 없습니다!


훌륭한 도구이지만 더 큰 프로젝트에서는 작업이 매우 느리며 (작업을 완료하는 데 몇 분이 걸릴 수 있음) 더 이상 지원되지 않는 것 같습니다.
Lukasz

6

Xcode 9

Xcode 9는 이제 기본적으로 지원합니다. 파일을 그룹에서 다른 그룹으로 이동하면 파일이 이전 폴더에서 새 폴더로 이동됩니다. 이것은 WWDC 2017에서 발표되었습니다.



2

나는 보통 Finder에서 직접 디렉토리로 파일을 옮긴 다음 "정보 입수"대화창에서 XCode에서 붉은 색 이름을 가진 파일들을 수정한다 : "선택 ..."버튼을 클릭하고 파일의 새로운 위치를 선택한다. 그것은 XCode에서 파일을 이동하려고 할 때 첫 번째 응답이며 작동합니다.


1

Xcode 4.5부터 폴더 구조를 드래그하면 프로젝트 탐색기에서 자동으로 중첩 그룹으로 바뀝니다. 그런 다음 디스크를 보면 (예 : 마우스 오른쪽 버튼을 클릭하고 Finder에서 표시를 선택) 폴더 구조가 유지됩니다.

오래된 프로젝트에서 문제를 해결하려는 것은 고통 스럽다는 것을 알았습니다. 이러한 파일을 삭제하고 다시 드래그하는 것이 훨씬 쉬운 것으로 나타났습니다.


1

xcode 4.5에서 폴더를 이동하려면 ...

  1. xcode에서 파일 / 그룹을 삭제하고 "참조 제거"를 선택하십시오.
  2. 파인더로 이동하여 필요에 따라 폴더 / 파일을 이동하십시오.
  3. 완료되면 Xcode로 돌아가서 File-> Add Files to {ProjectName}을 선택하십시오.
  4. "대상 그룹 폴더에 항목 복사 (필요한 경우)"가 선택되어 있는지 확인하십시오
  5. "추가 된 폴더에 대한 그룹 만들기"가 선택되어 있는지 확인하십시오
  6. 프로젝트에 대해 "대상에 추가"가 선택되어 있는지 확인하십시오

1

XCode 8을위한 가장 쉬운 기술 ...

논리 그룹에 파일 A, B, C가 있지만 하드 드라이브의 폴더로 이동하려고한다고 가정하십시오.

  1. Finder를 통해 대상 폴더 생성
  2. 옵션 창을 사용하여 XCode에서 폴더를 추가하고 (파일-> 파일 추가) 폴더 참조 (그룹이 아님)를 선택하십시오.
  3. 파일 A, B, C를 (이전) 그룹에서 프로젝트 탐색기의 (새) 폴더 참조로 드래그하십시오. XCode는 파일을 프로젝트와 디스크 모두에서 폴더로 이동합니다.

끝난.

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