Xcode 파생 데이터 폴더의 내용을 안전하게 삭제할 수 있습니까?


293

디스크 공간이 부족하고 타사 유틸리티를 통해 ~ / Library / Developer / Xcode / DerivedData 디렉토리가 약 22GB의 디스크 공간을 차지하는지 확인했습니다.

stackoverflow를 검색 하고이 게시물을 찾았습니다.

~ / Library / Developer / Xcode / DerivedData 디렉토리에서 안전하게 삭제하려면 어떻게해야합니까?

이 질문에 대한 대답은이 디렉토리에서 폴더를 만지거나 제거해서는 안된다는 것을 나타냅니다. 그래서 내가 한 일은

  • Appstore에서 사용할 수있는 앱의 기존 빌드 프로젝트 폴더를 찾았습니다.
  • 파생 디렉토리에서 폴더를 삭제했습니다.
  • XCode 5 출시
  • 해당 프로젝트를 엽니 다
  • 클린 빌드
  • 시뮬레이터에서 테스트하고 컴파일했습니다.
  • 재건축
  • 모든 것이 효과가있었습니다. 아무것도 부서지지 않았습니다.

게시물 답변에 뭔가 빠진 경우가 아니라면 숙련 된 개발자에게 DerivedData에서 모든 폴더를 삭제해도 프로젝트를 빌드, 테스트 및 컴파일하는 데 해를 끼치 지 않도록 요청하고 싶습니다.


참조 된 질문에 대한 대답은 stackoverflow.com/a/7284632/8047 입니다 .DerivedData에서 삭제하지 않는 것에 대해 아무 말도하지 않습니다 ... 아카이브는 나중에 물건을 디버깅하는 데 중요하지만 다른 디렉토리입니다.
Dan Rosenstark

답변:


372

예, DerivedData하위 폴더 에서 모든 파일을 (Not DerivedData Folder)직접 삭제할 수 있습니다.

프로젝트 작업에는 영향을 미치지 않습니다. DerivedData폴더 내용은 빌드 시간 동안 생성되며 원하는 경우 삭제할 수 있습니다. 문제가되지 않습니다.

DerivedData프로젝트를 다시 빌드하면 내용이 다시 작성됩니다.

Xcode8 + 업데이트

창 탭에서 프로젝트 옵션을 제거한 Xcode8에서 여전히 첫 번째 방법을 사용할 수 있습니다.

Xcode -> Preferences -> location -> click on small arrow button as i explain in my first answer.

Xcode7.3 업데이트 특정 프로젝트의 DeriveData를 제거하려면 다음 단계를 수행하면됩니다.

로 이동 Window -> Project:

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

프로젝트 목록을 찾을 수 있으며 DerivedData폴더 로 이동 하거나 개별 프로젝트를 직접 삭제할 수 있습니다DerivedData

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


Xcode5에서는 작동하지 않지만 4.6.3 DerivedData에서는 아래 이미지에서와 같이 폴더를 찾을 수 있습니다 .

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

환경 설정을 클릭 한 후 ..

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

이 창을 얻는다

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


1
고마워요 "파생 데이터"내용은 기본적으로 Xcode의 캐시되고 원하지 않는 파일과 같은가? 그래서 공간을 확보하기 위해 삭제해도 괜찮습니까?
Supertecnoboff

1
@gone 무슨 소리 야? 빌드 된 파일은 어딘가에 가야합니다.
Droppy 2016 년

2
음, CMake 및 기타 make 시스템을 사용하면 소스 외부 빌드에서도 생성 된 파일 등이 여전히 프로젝트 경로 안에 있으며 정리를 수행 할 때 폴더 구조를 삭제하거나 정리하면 삭제됩니다. 매주 약 100 건의 과제를 표시하고 있기 때문에 수동으로 삭제하고 XCode UI를 사용하여 각 프로젝트의 데이터를 개별적으로 기억 해야하는 파일이 엄청나게 쌓입니다. .bashrc에 William의 별칭을 구현했지만 이전 의견을 기다립니다.
사라

XCode 8은 일을 다시 바꾼다 (항상 고통 스러웠다). 이제 수동으로 폴더로 이동하여 /Users/YourUsername/Library/Developer/Xcode/DerivedData모두 삭제해야합니다. XCode 7 용으로 편집 한 것처럼 XCode 8 용으로 다시 편집 할 수 있다고 생각했습니다.
sweta.me

1
당신은 내 전체 답변을 확인할 수 있습니다. 이전 답변과 위치 탭에서 여전히 똑같은 오래된 답변에 여러 답변이 있습니다. :)
Nitin Gohel

124

파생 데이터를 제거하여 별칭이있을 수 있습니다. 빌드 문제를 해결할 수 있습니다. /Users/Myusername/.bash_profile에 다음이 있습니다.

alias purgeallbuilds='rm -rf ~/Library/Developer/Xcode/DerivedData/*'

그런 다음 터미널에서 purgeallbuilds를 입력하면 DerivedData의 모든 하위 폴더가 삭제됩니다.


24
DerivedData 폴더 자체를 삭제할 수 있습니다. 그냥 다시 만들어 질 것입니다.
Nick Lockwood

1
이 폴더를 삭제하면 Xcode 8에서 빌드가 즉시 실패합니다. 다시 추가하면 문제가 다시 해결되었습니다.
Tim

이것은 매우 유용한 팁입니다. 나는 보통 반년마다 공간이 부족하여 제거해야 할 폴더를 기억하기가 어렵습니다. 별칭은 확실히 편리합니다.
Oliver Zhang

35

XCODE 10 업데이트

탭에서 :

  1. Xcode를 클릭하십시오
  2. 환경 설정
  3. 위치-> 파생 데이터

파생 된 모든 데이터에 액세스하고 삭제하여 지울 수 있습니다.


파생 데이터 섹션은 파생 데이터의 경로 만 정의합니다. 어디서 보거나 삭제할 수 없습니다. 왜 명령 줄을 통해서만하지 않습니까?
AlxVallejo

2
@AlxVallejo 경로 주소의 끝에 폴더로 이동하는 아이콘이 표시됩니다. 그것을 탭하고 폴더를 삭제하면 다시 생성됩니다.
Umit Kaya

34

XCODE 7.2 업데이트

(7.1.1에서도 작동)

  1. 을 클릭 한 다음 프로젝트를 클릭 한 다음 파생 데이터 를 삭제하십시오 .

이처럼 :

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

그런 다음 여기에서 삭제하십시오.

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


희망이 도움이됩니다!


2
이렇게하면 하나씩 수동으로 삭제할 수 있지만 다른 게시물에 사용 된 방법은 DerivedData 폴더 내용을 한 번에 삭제하는 것입니다.
XIII

23
 $ du -h -d=1 ~/Library/Developer/Xcode/*

적어도 두 개의 폴더가 크다는 것을 보여줍니다.

 1.5G   /Users/horace/Library/Developer/Xcode/DerivedData
 9.4G   /Users/horace/Library/Developer/Xcode/iOS DeviceSupport

폴더에서 항목을 자유롭게 제거하십시오.

 rm -rf ~/Library/Developer/Xcode/DerivedData/*

그리고 일부 :

 open ~/Library/Developer/Xcode/iOS\ DeviceSupport/

2
이런 세상에 ... 장치 지원 폴더에있는 이전 버전의 iOS에서 파일을 삭제하면 ... 28기가바이트을 해제
카림

17

RAM 디스크를 만드는 작은 스크립트로 github 저장소를 만들었습니다. /Volumes/ramdisk디스크 를 꺼낸 후 DerivedData 폴더를로 지정 하면 모든 파일이 사라집니다.

컴파일 속도를 높이고이 문제를 제거합니다.

xc 발사 레포

DTerm을 사용하여 최고 출시


11

XCode 8 : 현재 프로젝트의 파생 데이터를 삭제하려면

제품 메뉴를 클릭하십시오

홀드 옵션 키

빌드 폴더 정리를 클릭하십시오.


옵션 키를 누르면 Clean Build 옵션이 회색으로 표시됩니다. : /
AlxVallejo

4

XCODE 10 업데이트

상태 표시 줄에서 Xcode 를 클릭 한 다음 환경 설정을 선택하십시오.

팝업 창 에서 마지막 세그먼트 이전의 위치 를 선택하십시오.

작은 오른쪽 아이콘으로 Derived Data 폴더에 도달 할 수 있습니다

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


2

~ / 라이브러리 / 개발자 / Xcode / DerivedData


기본적으로 예; ~/tmp/DerivedData빌드 된 파일 / 번들을 더 쉽게 얻을 수 있도록 사용 합니다.
Droppy 2016 년

1

예, 삭제해도 안전합니다. 스크립트는 찾은 모든 인스턴스를 로컬 디렉토리로 쉽게 수정할 수 있습니다

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'

for drive in Swap Media OSX_10.11.6/$HOME
do
   pushd /Volumes/${drive}  &> /dev/null
   gfind . -depth -name 'DerivedData'|xargs -I '{}' /bin/rm -fR '{}'
   popd &> /dev/null
done


-1

나는 그것이 안전하다고 말할 것이다 - 나는 종종 아이폰 OS 프로젝트, 많은 종류의 폴더의 내용을 삭제 이런 식으로 . 그리고 빌드 또는 App Store에 제출하는 데 아무런 문제가 없었습니다. 이 절차는 파생 된 데이터를 삭제하고 Xcode 5 및 6 모두에 대해 프로젝트의 캐시 된 자산을 정리합니다.

때로는 Derived Data 디렉토리에서 rm -rf를 호출하면 느린 파일이 남지만 두 파일은 모두 삭제 될 때까지 스크립트가 반복됩니다.


어. 오식. 나는 '제공'을 의미했다
clearlight

아, 다른 질문에 대한 답변으로 제공 한 스크립트에 연결하고 있습니다. 이 방법으로 스크립트를 업데이트하려면 한 곳에서만 편집하면됩니다. 링크를 따라갈 수 있습니까?
Sheamus

나는 지금 코드를 본다. 전에 링크가 보이지 않았다면 감사합니다.
clearlight

-1

'파생 데이터'의 내용은 빌드 타임 동안 생성됩니다. 안전하게 삭제할 수 있습니다. '파생 데이터'를 삭제하려면 다음 단계를 따르십시오.

  1. Xcode-> 환경 설정을 선택하십시오 .

1 단계

  1. 팝업 창이 열립니다. ' 위치 '탭을 선택 하십시오. 위치 하위 탭에서 ' 파생 데이터 '를 볼 수 있습니다 . 경로 옆에있는 화살표 아이콘을 클릭하십시오.

2 단계

  1. 그러면 '파생 데이터'가 포함 된 폴더가 열립니다. 마우스 오른쪽 버튼을 클릭하고 폴더를 삭제하십시오.

3 단계

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