-
Xcode가 저장 공간 다 잡아 먹는다.Apple🍎 2025. 3. 1. 20:17
혹시 그런 경험하신 적 없나요?? 이상하게 저장공간이 모자라는?
아니 진짜 뭐 한 것도 없는데 도대체 내 소중한 저장공간을 누가 잡아먹었을 까요?
범인은 바로Xcode 이 녀석입니다!!!!!
이 자식이 뭐 하느라 그렇게 저장 공간을 많이 잡아먹는지 파해쳐 봅시다.
개발자 항목의 오른쪽에 있는 인포 버튼을 누르면 다음과 같은 창이 뜨는데요.
여기서 각 항목을 선택해서 삭제할 수 있어요.
삭제하기 전에 각 데이터가 뭐 하는지는 알아야겠죠?
Xcode 캐시
Xcode 캐시는 이전 빌드 정보를 저장하여 재빌드 시간을 단축시키는 역할을 합니다.
- 컴파일된 헤더 파일(PCH)
- 모듈 캐시
- 중간 빌드 결과물
- 시스템 프레임워크 캐시
프로젝트 빌드 데이터 및 인덱스
- 빌드 데이터: 컴파일된 오브젝트 파일(.o), 중간 생성 코드, 리소스 처리 결과물을 저장합니다.
- 인덱스: 코드 자동완성, 심볼 내비게이션, 검색 기능을 위한 프로젝트 구조 정보를 저장합니다.
- 이 데이터는 주로 ~/Library/Developer/Xcode/DerivedData 디렉토리에 저장됩니다.
프로젝트 아카이브
- 배포 준비가 완료된 앱의 완전한 자체 포함 버전입니다.
- 컴파일된 앱 바이너리, 디버깅 심볼, 메타데이터를 포함합니다.
- App Store 제출이나 엔터프라이즈 배포용으로 사용됩니다.
- ~/Library/Developer/Xcode/Archives 경로에 저장됩니다.
다음 기준에 따라 삭제를 할지 말지를 결정할 수 있어요.
삭제 판단 기준
Xcode 캐시
다음과 같은 상황에서 삭제를 고려해 볼 수 있습니다:
- 빌드 성능이 현저히 저하되었을 때
- 디스크 공간이 부족할 때
- Xcode 업데이트 후 호환성 문제가 발생할 때
- 프로젝트에서 이상한 빌드 오류가 발생할 때
프로젝트 빌드 데이터 및 인덱스
삭제가 필요한 상황:
- "Clean Build Folder" 후에도 빌드 오류가 지속될 때
- 코드 자동완성이 제대로 작동하지 않을 때
- 프로젝트 구조가 크게 변경되었을 때
- Xcode 버전을 변경했을 때
프로젝트 아카이브
삭제 고려 시점:
- 오래된 버전으로 더 이상 필요하지 않을 때
- 디스크 공간 확보가 필요할 때
- 특정 버전의 문제 해결이 완료되었을 때
- 테스트용 빌드가 더 이상 필요하지 않을 때
런타임
iOS 기기 지원 항목은 현재 설치돼있는 런타임을 의미하는데요.
런타임이란?
런타임은 특정 iOS, iPadOS, watchOS 또는 tvOS 버전의 운영 체제를 의미합니다.
쉽게 말해, 실제 기기에 설치되는 iOS 버전(예: iOS 17.5, iOS 18.2)과 같은 소프트웨어입니다.
예를 들어, iOS 17, iOS 18, iOS 18.2는 각각 별도의 런타임이에요.
베타 버전(iOS 18 Beta 1, Beta 2 등)도 각각 별도의 런타임으로 취급돼요.
현재 내 앱을 구동하는데 필요한 런타임을 제외한 것들을 삭제함으로써 저장용량을 아낄 수 있어요.
시뮬레이터
시뮬레이터는 특정 Apple 기기의 하드웨어 특성을 모방하는 소프트웨어로서
다음과 같은 기기 유형을 시뮬레이션할 수 있어요.
- iPhone (다양한 모델: iPhone SE, iPhone 14, iPhone 16 Pro 등)
- iPad (다양한 모델들)
- Apple Watch
- Apple TV
각 시뮬레이터는:
- 특정 기기의 화면 크기, 해상도, 기능 등을 모방합니다.
- 런타임과 결합되어 작동합니다.
- 시간이 지남에 따라 앱 데이터, 설정 등을 저장하면서 더 많은 디스크 공간을 차지하게 됩니다.
구니까 정리해 보면
런타임은 앱이 실행되는 운영체제
그리고 시뮬레이터는 그 운영체제를 탑재할 기기를 의미해요.
이 둘이 조합되어 다양 환경을 테스트해 볼 수 있어요.
- 기기 + 운영체제 조합: iPhone 16 Pro (시뮬레이터) + iOS 18.2 (런타임) = iOS 18.2가 실행되는 iPhone 16 Pro 시뮬레이션
- 다양한 조합 가능: 각 시뮬레이터는 여러 런타임과 함께 사용될 수 있습니다. 예를 들어, iPhone 16 시뮬레이터에 iOS 18.1, iOS 18.2, iOS 18.3 등 다양한 런타임을 설치할 수 있습니다.
- 디스크 공간 영향: 시뮬레이터와 런타임의 각 조합은 별도의 디스크 공간을 차지하며, 시뮬레이터를 사용할수록 데이터가 더 많이 축적됩니다.
Xcode가 뺏어간 용량을 다시 찾아오려다 보니까
뭘 삭제할지 알려면 일단 각 데이터가 뭘 하는지 알아야 하더라고요.
이 참에 Xcode와 시뮬레이터가 작동하는 방식에 대해서 좀 더 자세히 알아보는 시간이 되었어요.
다들 한 번씩 정리해서 비싼 저장용량 다시 확보하세요.
'Apple🍎' 카테고리의 다른 글
[iOS, macOS] StoryBoard 없이 코드 베이스 UI 구성하기 (0) 2025.04.22 iOS 앱 개발에서 버전과 빌드의 이해하기 (0) 2025.04.12 SwiftUI와 UIKit 뷰 구성하는 법 비교하기 ( 선언형, 절차형 패러다임 비교) (0) 2024.09.19 String Catalog를 이용한 Localization (0) 2024.08.26 UIKit과 SwiftUI의 생명주기 관리 (0) 2024.06.07