제 QA 시뮬레이터는 9.8 GB를 차지했는데, 그 원인은 제 앱이 아니었습니다. 앱 컨테이너는 0.34 GB였습니다. 나머지는 iOS가 채웠습니다. 잠금 화면 포스터 스냅샷 캐시, 시스템 로그, 다운로드한 Siri 및 언어 에셋, 심볼 캐시입니다. 제 Mac에 있는 시뮬레이터 10개를 재 봤는데, 모든 기기에서 앱이 차지하는 비중은 작았습니다.
기본 원칙: 시뮬레이터를 초기화하기 전에 크기부터 재고, 초기화나 삭제는 xcrun simctl로 하세요. data 폴더 안의 폴더를 손으로 지우지 마세요.
빠른 요약
du -sh ~/Library/Developer/CoreSimulator/Devices/* | sort -h | tail로 무거운 시뮬레이터를 찾습니다.xcrun simctl list devices로 각 UDID를 기기 이름과 맞춰 봅니다.du -h -d 4 ~/Library/Developer/CoreSimulator/Devices/<UDID>/data | sort -h | tail -20로 하나를 골라 안을 살펴봅니다.- 그 상태가 더 이상 필요 없다면 기기를 종료하고 초기화합니다.
xcrun simctl shutdown <UDID>를 실행한 다음xcrun simctl erase <UDID>를 실행합니다. - 전혀 쓰지 않는 시뮬레이터는
xcrun simctl delete <UDID>로 제거합니다.
시뮬레이터 한 대의 9.8 GB는 어디에 쓰였나
첫 번째 측정에서는 QA 시뮬레이터 하나가 Devices 폴더의 절반을 차지했습니다. 한 독자가 그 안에 무엇이 있는지 물어서 data 폴더를 열어 봤습니다. 이 기기는 iOS 27.0의 iPhone 18 Pro 시뮬레이터이고, 측정하는 동안 부팅된 상태였습니다.
data 안의 폴더 | 크기 |
|---|---|
Library/Application Support/PRBPosterExtensionDataStore | 2.88 GB |
var/db/diagnostics | 2.07 GB |
private/var/MobileAsset | 2.03 GB |
Library/Caches/com.apple.coresymbolicationd | 1.13 GB |
var/db/uuidtext | 0.49 GB |
Containers, 모든 앱 컨테이너 | 0.34 GB |
data 폴더 전체 | 9.81 GB |
Containers에는 설치된 앱, 그 데이터 컨테이너, 앱 그룹, 확장 프로그램 데이터가 들어 있습니다. 제 앱과 테스트가 쓴 모든 것이 이 0.34 GB 안에 들어갑니다.
시뮬레이터 10개 나란히 비교하기
제 Mac에는 시뮬레이터가 53개 있습니다. 그중 43개는 각각 약 20 MB로, 앱을 한 번도 실행하지 않은 기기의 크기입니다. 나머지 10개가 제가 쓰는 시뮬레이터입니다. 크기 단위는 GB입니다.
diagnostics와 uuidtext), MobileAsset, 나머지 전부로 나눴습니다. 점은 부팅되어 있던 기기를 표시합니다.| 시뮬레이터 | iOS | 상태 | data | 포스터 저장소 | diagnostics | MobileAsset | Containers |
|---|---|---|---|---|---|---|---|
| QA 기기, iPhone 18 Pro | 27.0 | 부팅됨 | 9.81 | 2.88 | 2.07 | 2.03 | 0.34 |
| iPad Pro 13-inch (M5) | 27.0 | 부팅됨 | 4.59 | 1.65 | 0.21 | 1.70 | 0.16 |
| iPhone 16 | 18.6 | 종료됨 | 3.14 | 0.03 | 1.22 | 0.79 | 0.24 |
| iPhone SE (3rd generation) | 26.5 | 부팅됨 | 2.62 | 0.04 | 0.36 | 1.00 | 0.31 |
| iPhone 11 Pro | 26.5 | 종료됨 | 2.36 | 0.00 | 0.15 | 1.21 | 0.12 |
| iPhone 16, 도그푸딩 빌드 | 18.6 | 종료됨 | 2.03 | 0.03 | 0.36 | 0.90 | 0.11 |
| iPhone 16 Pro Max | 18.6 | 부팅됨 | 1.58 | 0.05 | 0.05 | 0.90 | 0.15 |
| iPhone 16 Pro Max | 27.0 | 종료됨 | 1.53 | 0.17 | 0.02 | 0.17 | 0.16 |
| iPad Pro 11-inch (M4) | 18.6 | 종료됨 | 1.47 | 0.03 | 0.09 | 0.78 | 0.07 |
| iPhone SE (3rd generation), 두 번째 앱 | 18.6 | 종료됨 | 0.63 | 0.03 | 0.01 | 0.21 | 0.08 |
눈에 띄는 패턴은 세 가지입니다.
- Containers는 0.34 GB를 넘은 적이 없습니다. 제가 테스트하는 앱은 시스템 데이터에 비하면 반올림 오차 수준입니다.
- MobileAsset은 모든 시뮬레이터에 있습니다. 크기는 0.17에서 2.03 GB 사이였습니다.
- 포스터 저장소는 부팅된 iOS 27.0 기기 두 대에서만 크게 늘었습니다. iOS 18.6과 26.5에서는 0.05 GB 미만에 머물렀습니다. 기기 두 대만으로 iOS 27.0 탓이라고 하기에는 부족하지만, 차이는 큽니다.
각 폴더에 들어 있는 것
PRBPosterExtensionDataStore: 잠금 화면 포스터 스냅샷
이 폴더 이름은 GalleryCache, SnapshotCache.cachedb와 함께 iOS 27.0 시뮬레이터 런타임의 비공개 PosterBoard.framework 안에 문자열로 들어 있습니다. 런타임에는 식별자가 com.apple.PosterBoard인 시스템 앱 PosterBoard.app도 들어 있습니다. 폴더 안의 하위 폴더에는 Apple 포스터 확장 프로그램의 ID가 붙어 있습니다. WeatherPoster, EmojiPoster, PhotosPosterProvider, KaleidoscopePoster 등입니다. Apple의 사용자화된 잠금 화면 생성하기 가이드는 잠금 화면 배경화면으로 날씨, 천문, 사진 등을 소개합니다.
제 QA 기기에서 이 폴더에는 파일이 6,776개 있었습니다. 그중 2,911개는 각각 약 1 MB인 .atx 스냅샷 파일로, 이름은 Composite.atx, Background.atx, Foreground.atx, Floating.atx였고 합계는 2.9 GB였습니다. iPad에서는 스냅샷 파일 939개 모두의 수정 날짜가 측정한 날이었습니다. 즉 기기가 실행되는 동안 이 캐시를 씁니다. 무엇 때문에 커지는지는 저도 모르고, Apple도 문서화하지 않았습니다.
var/db/diagnostics와 var/db/uuidtext: 시스템 로그
이 폴더들에는 통합 로깅 시스템의 데이터가 들어 있습니다. man log는 로그 저장소를 /var/db/diagnostics에 있는 것과 같은 시스템 로깅 데이터베이스로 설명하고, 그 옆에 /var/db/uuidtext 같은 uuidtext 디렉터리가 있다고 말합니다. 시뮬레이터마다 data 폴더 안에 자기 사본을 둡니다. 제 기기들에서는 0.01에서 2.07 GB 사이였고, QA 기기에는 여기에 uuidtext 0.49 GB가 더해졌습니다.
private/var/MobileAsset: iOS가 다운로드하는 에셋
QA 기기에서 AssetsV2에는 Siri와 언어 기능의 이름이 붙은 에셋 세트가 있었습니다.
| 에셋 세트 | 크기 |
|---|---|
com_apple_MobileAsset_UAF_Siri_Understanding | 805 MB |
com_apple_MobileAsset_UAF_LinguisticData | 409 MB |
com_apple_MobileAsset_UAF_Siri_TextToSpeech | 289 MB |
com_apple_MobileAsset_UAF_SearchQueryUnderstanding | 106 MB |
com_apple_MobileAsset_TTSAXResourceModelAssets | 96 MB |
이 에셋은 시뮬레이터가 스스로 다운로드합니다. Apple 개발자 포럼의 한 개발자는 iOS 26.5에서 같은 폴더가 nsurlsessiond의 다운로드로 수십 GB씩 늘어났다고 보고했습니다. 그 스레드에는 답변이 없습니다.
com.apple.coresymbolicationd: 심볼 캐시
coresymbolicationd man 페이지는 이를 OS 라이브러리용 “디버그 심볼 캐시를 관리하는 데몬”(daemon to manage debug symbols cache)이라고 부릅니다. QA 기기에서는 1.13 GB를 차지했고, 다른 기기에서는 거의 차지하지 않았습니다.
무거운 시뮬레이터를 저는 이렇게 처리합니다
저는 이 폴더들을 열어 파일을 지우지 않습니다. Apple이 문서화하지 않은 폴더이고, 포스터 저장소나 로그 저장소를 반쯤 지우면 시뮬레이터에 무슨 일이 생기는지 저도 말씀드릴 수 없습니다. 지원되는 도구는 기기 전체 단위로 동작합니다.
xcrun simctl erase <UDID>는 콘텐츠와 설정을 지우고 기기는 남깁니다. 먼저 기기를 종료하세요.xcrun simctl delete <UDID>는 기기를 제거합니다.xcrun simctl delete unavailable은 현재 Xcode SDK가 더 이상 지원하지 않는 기기를 제거합니다.
초기화하면 설치된 앱과 그 데이터, 위에서 다룬 시스템 폴더가 모두 사라지므로 앱을 다시 설치하고 다시 로그인해야 합니다. 버그나 테스트 때문에 아직 상태가 필요한 기기는 남기세요. 포스터 저장소, 로그, 에셋은 기기가 다시 실행되면 다시 커질 수 있습니다. 그래서 초기화는 늘어나는 원인을 고치지 않고 공간만 되찾아 줍니다.
CoreSimulator Data는 다음 빌드가 다시 만드는 DerivedData와 따로 Review before cleaning 아래에 있습니다. 이전 스캔의 스크린샷이라 크기는 이 글의 수치와 다릅니다.측정 방법
2026년 10월 26일, M4를 탑재한 Mac mini에서 macOS 27.0.1과 Xcode 27.1로 측정했습니다. 모든 명령은 데이터를 읽기만 합니다.
xcrun simctl list devices --json
du -sk ~/Library/Developer/CoreSimulator/Devices/<UDID>/data
du -k -d 4 ~/Library/Developer/CoreSimulator/Devices/<UDID>/data | sort -rn | head -20
find ~/Library/Developer/CoreSimulator/Devices/<UDID>/data/Library/Application\ Support/PRBPosterExtensionDataStore -name '*.atx' | wc -l
크기는 du 값을 1024로 두 번 나눈 것으로, du -h가 출력하는 것과 같은 이진 단위입니다. 각 행의 폴더는 서로 겹치지 않습니다. 다만 Containers에는 그 하위 폴더가 포함됩니다. 부팅된 시뮬레이터는 계속 데이터를 쓰므로 수치가 시간 단위로 바뀝니다.
핵심 요약
큰 시뮬레이터에 들어 있는 것은 대개 여러분의 앱이 아니라 iOS 데이터입니다. 제 Mac에서 앱 컨테이너는 기기당 0.07에서 0.34 GB였고, 포스터 스냅샷, 로그, 다운로드한 에셋, 심볼 캐시는 최대 9.5 GB를 차지했습니다. data 폴더를 재 보고, 상태가 필요한 기기는 남기고, 나머지는 simctl로 초기화하거나 삭제하세요.
자주 묻는 질문
앱은 작은데 iOS 시뮬레이터는 왜 이렇게 큰가요?
앱은 그중 작은 부분입니다. 제 QA 시뮬레이터에서 앱 컨테이너는 9.8 GB 중 0.34 GB를 차지했습니다. 나머지는 iOS 자체였습니다. 잠금 화면 포스터 스냅샷 캐시, 시스템 로그, 다운로드한 Siri 및 언어 에셋, 심볼 캐시입니다.
iOS 시뮬레이터의 PRBPosterExtensionDataStore는 무엇인가요?
각 시뮬레이터의 data 폴더 안에 있는 폴더로, 잠금 화면 포스터를 담당하는 iOS 구성 요소인 PosterBoard에 속합니다. 이 이름은 iOS 27.0 런타임의 비공개 PosterBoard.framework 안에 문자열로 들어 있습니다. 제 Mac에서는 시뮬레이터 하나에서 2.9 GB를 차지했고, 거의 전부가 .atx 스냅샷 파일이었습니다.
시뮬레이터 data 폴더 안의 폴더를 직접 지워도 되나요?
저는 지우지 않습니다. Apple이 이 폴더들을 문서화하지 않았기 때문에 무엇이 망가지는지 아무도 알려 줄 수 없습니다. 시뮬레이터의 콘텐츠와 설정을 지우려면 xcrun simctl erase를, 기기를 제거하려면 xcrun simctl delete를 쓰세요.
시뮬레이터를 초기화하면 iOS 런타임도 삭제되나요?
아닙니다. 초기화는 기기의 data 폴더를 비우고 기기와 런타임은 남깁니다. 런타임은 별도의 디스크 이미지이며 xcrun simctl runtime delete로 제거합니다.
어떤 폴더가 어떤 시뮬레이터의 것인가요?
~/Library/Developer/CoreSimulator/Devices 안의 폴더는 UDID를 이름으로 씁니다. xcrun simctl list devices를 실행하면 각 UDID를 기기 이름, 런타임, 상태와 연결해 볼 수 있습니다.