Mac에서 오래된 iOS 시뮬레이터 런타임을 삭제하는 방법
시간이 지남에 따라 Xcode iOS 시뮬레이터는 눈에 띄지 않게 수 기가바이트의 저장 공간을 차지할 수 있습니다. 이 공간을 다시 확보하는 방법을 소개합니다.
Xcode 저장 공간은 런타임, 시뮬레이터 기기, DerivedData, DeviceSupport, Archives로 나뉩니다. 위치는 비슷하지만 관리 방식과 복구 비용이 다르므로 삭제 전에 측정하세요.
Xcode 저장 공간부터 목록으로 확인하기
Apple은 추가 플랫폼 구성 요소를 Xcode의 Components 설정에서 관리하도록 안내합니다. 다음 읽기 전용 명령으로 설치된 런타임과 기기 상태를 확인하세요.
xcrun simctl list runtimes
xcrun simctl list devices
| 종류 | 삭제 후 비용 | 유지할 때 |
|---|---|---|
| 런타임 | 다시 다운로드해야 하고 의존 기기 사용 불가 | 테스트 계획이나 버그 재현에 필요 |
| 가상 기기 | 앱, 키체인, DB, 테스트 상태 삭제 | 문제 상태를 재현해야 함 |
| DerivedData | 재빌드와 재인덱싱 | 현재 빌드에서 사용 중 |
| DeviceSupport | 실제 기기 OS용 오프라인 디버깅 자료 손실 가능 | 해당 기기나 크래시를 다룸 |
| Archives | 배포 빌드와 일치하는 dSYM 손실 가능 | 사용자가 아직 그 버전을 실행함 |
iOS 시뮬레이터가 이렇게 많은 공간을 차지하는 이유
런타임은 다운로드한 iOS, watchOS, tvOS 또는 visionOS 시스템 이미지입니다. 시뮬레이터 기기는 그 런타임에서 실행되는 가상 기기입니다. 여러 기기가 하나의 런타임을 공유할 수 있으므로 같은 캐시로 취급하면 안 됩니다.
터미널을 통해 사용하지 않는 시뮬레이터 삭제하는 방법
먼저 위의 읽기 전용 명령으로 런타임과 기기를 확인합니다.
이 목록 조회 명령은 런타임 이미지를 제거하지 않습니다. 다운로드한 런타임은 Xcode > Settings > Components에서 확인하고 삭제하세요. /Library/Developer/CoreSimulator 또는 /System/Library/AssetsV2 폴더를 직접 지우지 마세요.
현재 플랫폼의 최신 런타임
개발 중인 플랫폼은 최신 런타임을 유지합니다.
버그 재현에 필요한 이전 버전
테스트 계획, CI, 사용자 문제가 가리키는 버전은 다운로드 시간 이상의 가치가 있습니다.
사용할 수 없는 기기만 따로 삭제하기
목록을 확인한 뒤 이 명령으로 런타임이 없는 기기 레코드만 삭제합니다. 런타임 자체는 제거하지 않습니다.
xcrun simctl delete unavailable
시뮬레이터 캐시 및 앱 데이터 지우기
특정 기기의 테스트 상태만 지우려면 Simulator에서 그 기기를 실행하고 Device > Erase All Content and Settings를 선택합니다. 공유 런타임은 남지만 설치한 앱, 키체인, 데이터베이스 등 기기 상태는 사라집니다.
DeviceSupport, DerivedData, Archives를 따로 관리하기
DerivedData는 다시 만들 수 있지만 전체 삭제 시 모든 프로젝트가 다시 빌드되고 인덱싱됩니다. DeviceSupport는 실제 기기 디버깅에, 배포 빌드의 Archives와 dSYM은 향후 충돌 분석에 필요할 수 있습니다. Mole은 대체된 런타임을 보여 주고 선택 항목을 simctl runtime delete로 제거합니다. 기기와 아카이브는 Xcode에서 관리하세요.
DeviceSupport는 실제 기기와 크래시로 선택하기
오래된 날짜만으로 불필요하지 않으며 연결할 기기와 분석할 크래시로 판단합니다.
Archives는 사용 중인 릴리스로 선택하기
사용자가 실행하는 버전은 dSYM과 빌드를 다른 곳에서 검증하지 않았다면 보관합니다.
반복 가능한 안전한 정리 순서
Xcode, Simulator, 관련 빌드를 종료하고 다섯 범주를 따로 측정합니다. 필요 없음을 확인한 이전 런타임을 Xcode 설정에서 제거하고 기기 목록을 본 뒤 xcrun simctl delete unavailable을 실행하세요. DerivedData는 오래된 프로젝트 단위로, DeviceSupport는 실제 기기와 크래시 요구에 따라, Archives는 Organizer에서 배포 중인 버전을 기준으로 판단합니다. 다시 측정해 필요한 공간을 얻으면 멈추세요.
Mole이 정리하는 범위
Mole은 Apple이 삭제 가능하다고 한 이전 런타임만 다루며 기기 상태나 릴리스 아카이브는 지우지 않습니다.
자주 묻는 질문
시뮬레이터를 삭제하면 프로젝트 코드가 삭제되나요?
프로젝트 소스는 삭제되지 않지만 가상 기기의 앱과 테스트 상태는 사라집니다.
iOS DeviceSupport 폴더를 삭제해도 안전한가요?
DeviceSupport 전체를 캐시처럼 지우지 마세요. 오래된 OS 데이터도 실제 기기 디버깅이나 충돌 분석에 필요할 수 있습니다.
Mole은 오래된 시뮬레이터를 찾을 수 있나요?
Mole은 대체된 다운로드 런타임을 표시하고 선택 항목을 simctl로 삭제합니다. CoreSimulator 폴더는 직접 지우지 않으며, 다시 만들어지는 시스템 캐시 /Library/Developer/CoreSimulator/Caches만 시뮬레이터가 실행 중이 아닐 때 비웁니다.