ABOUT ME

-

  • 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와 시뮬레이터가 작동하는 방식에 대해서 좀 더 자세히 알아보는 시간이 되었어요. 

     

    다들 한 번씩 정리해서 비싼 저장용량 다시 확보하세요. 

     

    댓글

Designed by Tistory.