Levo 가이드 · 개발자: Apple

Xcode는 왜 이렇게 클까요? 지워도 되는 것

비울 수 있는 그룹 중에 Xcode build data와 Simulators가 크기와 함께 표시된 Levo 팝오버

Xcode 앱은 일부일 뿐이에요. 진짜 무게는 ~/Library/Developer에 있어요. 빌드 데이터, 시뮬레이터, 내려받은 런타임, 연결했던 모든 기기의 디버그 심볼이에요. 거의 전부 다시 생기니까 지워도 돼요. 예외는 아카이브와, 아직 쓰는 시뮬레이터 안의 데이터 두 가지예요.

항목위치지워도 되나요?
Xcode.app/Applications/Xcode.app오래된 버전은 지워도 돼요. 쓰는 버전은 남겨 두세요
빌드 데이터~/Library/Developer/Xcode/DerivedData네. 다음 빌드 때 다시 만들어져요
시뮬레이터~/Library/Developer/CoreSimulator/Devices네. 다만 안에 있는 앱 데이터도 함께 지워져요
시뮬레이터 런타임/Library/Developer/CoreSimulator(디스크 이미지)네. 필요할 때 다시 내려받으세요
기기 지원 파일~/Library/Developer/Xcode/iOS DeviceSupport네. 연결할 때 다시 복사돼요
아카이브~/Library/Developer/Xcode/Archives빌드를 배포했고 심볼을 다른 곳에 보관한 경우에만
캐시~/Library/Caches/com.apple.dt.Xcode예
SwiftUI 프리뷰~/Library/Developer/Xcode/UserData/Previews예
명령줄 도구/Library/Developer/CommandLineTools전체 Xcode가 있고 따로 필요하지 않은 경우에만

직접 하는 방법

큰 것에 시간을 쓰도록 먼저 폴더 크기를 재 보세요.

du -sh ~/Library/Developer/Xcode/* ~/Library/Developer/CoreSimulator /Library/Developer/CoreSimulator 2>/dev/null
  1. Xcode를 종료한 다음 DerivedData의 내용을 지우세요. DerivedData 삭제하는 방법을 참고하세요.
  2. 쓰지 않는 시뮬레이터와 런타임은 xcrun simctl로 지우거나, Xcode › 설정 › Components에서 지우세요. 오래된 시뮬레이터 삭제하는 방법을 참고하세요.
  3. iOS DeviceSupport을 열고 기기가 더는 쓰지 않는 iOS 버전의 폴더를 지우세요. DeviceSupport란을 참고하세요.
  4. Xcode › Window › Organizer › Archives를 열고 안에 무엇이 있는지 보세요. 아카이브는 App Store Connect에 보낸 그 빌드의 유일한 사본이고, 안의 dSYM이 크래시 리포트를 심볼화해요. 그 심볼을 다른 곳에 보관한 경우에만 오래된 것을 지우세요.

/Applications에 있는 오래된 Xcode는 하나에 약 12~15GB예요. Developer 폴더를 치우는 방식 말고, Finder에서 지우세요.

되살리는 데 드는 비용

잃어도 가장 부담이 적은 건 DerivedData로, 프로젝트마다 빌드가 한 번 느려질 뿐이에요. 시뮬레이터 런타임은 수 GB 다운로드와 몇 분이 들어서, 앱이 지원하는 iOS 버전만 남기세요. 기기 지원 파일은 다음에 iPhone을 연결할 때 잠깐 기다리면 돼요.

아카이브는 달라요. 안의 dSYM 파일이 오래된 릴리스의 날것 그대로의 크래시 리포트를 읽을 수 있는 줄로 바꿔 줘요. 릴리스할 때 dSYM을 크래시 도구에 올렸다면 아카이브는 그냥 큰 zip이라 지워도 돼요. 올리지 않았다면 아직 쓰이는 모든 버전의 아카이브를 보관하세요.

Xcode 자체 업데이트도 조용한 원인이에요. 새 버전을 이전 버전 옆에 설치할 때마다 12~15GB가 늘고, Xcode 베타도 그 위에 쌓여요. 오래된 것을 Finder에서 지우고 휴지통을 비우면 공간이 바로 돌아와요. Mac이 거의 가득 찼다면 다른 무엇보다 먼저 이걸 하세요. 디스크가 가득 차면 Xcode의 색인과 빌드가 이상하게 실패해요.

Levo는 이렇게 해요

Levo는 Xcode build data, 기기 지원 파일, 시뮬레이터, 패키지 캐시를 크기가 붙은 별도의 행으로 보여 줘서, 위의 것 중 어느 게 내 80GB인지 알 수 있어요. 프로젝트가 오래됐거나 없어졌다면 빌드 데이터와 캐시가 먼저 선택돼요. 오래된 Xcode 버전과 아카이브는 목록에 나오지만 자동으로 선택되지 않아요.

Levo는 시뮬레이터를 Xcode 자체의 simctl로 지우고, Xcode, xcodebuild, 또는 실행 중인 시뮬레이터가 있는 동안에는 빌드 데이터를 건너뛰어요. iOS와 Mac 개발자를 위한 Levo를 참고하세요.

자주 묻는 질문

Xcode가 왜 100GB나 차지하나요?

앱 밖에 저장하는 것 때문이에요. 프로젝트별 빌드 데이터, 시뮬레이터와 그 런타임, 연결했던 모든 기기의 디버그 심볼, 아카이브예요. 앱 자체는 약 15GB예요.

Xcode의 Library/Developer 폴더를 지워도 되나요?

폴더 전체는 안 돼요. 안에 있는 DerivedData, CoreSimulator 기기, DeviceSupport는 지워도 되지만, Archives와 키 바인딩과 테마가 들어 있는 UserData 폴더는 잃어도 괜찮은 경우가 아니면 남겨 두세요.

DerivedData를 지우면 프로젝트가 망가지나요?

아니요. 소스와 프로젝트 설정은 그 안에 없어요. Xcode가 다시 빌드하고 색인하는 동안 다음 빌드가 느려져요.

시뮬레이터 런타임을 지워도 안전한가요?

네. 내려받은 것이라 프로젝트에 필요하면 Xcode가 다시 가져와요. 시뮬레이터 기기를 지우면 안에 있는 앱 데이터는 지워져요.