본문 바로가기
연구하기/iOS App Dev

Xcode 4 빌드 디렉토리 클리닝 작업

by 썰렁황제 2012. 5. 6.

Xcode 3 에서 빌드 디렉토리가 프로젝트 디렉토리 아래에 있던 것과는 달리,  Xcode 4 에서는 빌드 디렉토리가 별도의 폴더 아래 있게 되었다.

위치는 사용자 디렉토리/Library/Developer/Xcode/DerivedData/ 이다. 사용자 디렉토리 아래의 Library 디렉토리는 hidden 이므로 주의. (쉽게 접근하는 방법은 다음번에 간단히 설명할 예정)

일단 이 방법은 빌드 디렉토리가 프로젝트 디렉토리에서 빠지다 보니 커밋 대상에서 간단히 배제되어 Xcode 3 시절처럼 빌드 디렉토리 뺀다고 뻘짓거리 할 필요도 없고 (svn ignore 안해주면 커밋할 떄 빌드 디렉토리가 통째로 추가되는 불상사가...) 프로젝트 압축할 때에도 빌드 디렉토리 지우고 자시고 하는 복잡한 작업을 안해도 되니 이모저모 간편해진다. 어짜피 배포작업 할 때는 archive 쓰고, 기본적인 빌드 디렉토리의 역할은 개발 중 실행용도이니, 이런 식으로 처리하는 게 아무래도 편하다.

그런데 이런 방식을 쓰면서 아래와 같은 문제가 발생하게 되었다.

  1.  같은 번들 ID 를 이용해 서로 다른 이름을 가진 어플을 빌드 시 (매번 어플을 단말에 너기 위해 번들 ID 를 디벨로퍼 센터에서 발급받는 것도 귀찮은 일이니 종종 사용하는 경우가 있다) 빌드 결과물을 단말이나 에뮬레이터에 복사 시 이전 어플의 디렉토리를 복사하는 경우가 있다.
  2. 하나의 프로젝트에 대해 여러 체크아웃된 디렉토리가 있을 때 종종 구문분석 기능이 먹통이 된다.
  3. 1, 2와 같은 상황일 때 수정된 코드가 결과물에 반영되지 않는다.
이런 현상이 발생하면 단순히 Clean 명령만으로는 아무런 소용이 없다. 같은 문제만 지속적으로 발생할 뿐이다.

자세한 설명은 좀 나중으로 미루고, 일단 해결법을 보자.
해결법은, 위의 빌드 디렉토리 내에 있는 모든 빌드 디렉토리를 소거하는 것이다. 즉 현재 작업중인 어플의 빌드 디렉토리 뿐만 아니라 개발 하드에 존재하는 모든 프로젝트의 빌드 디렉토리를 제거하는 것이다.

Xcode 4 의 GUI 상에서는 다음과 같이 한다.
1. Organizer 를 연다.
2. 가장 상단의 Projects 탭을 클릭한다.
3. 좌측 목록에서 유효한 프로젝트 중 하나를 선택한다.
4. Derived Data 라는 항목에 적힌 디렉토리 이름의 가장 끝 부분에 위치한 화살표 (-> 모양) 를 클릭한다.
5. 펼쳐진 Finder 에 있는 모든 디렉토리를 지운다. (디렉토리는 어플명-랜덤ID형식일 것이다)
6. 가급적이면 에뮬레이터나 단말에 설치된 어플도 삭제한다.



반응형