728x90
Xcode는 단순한 text editor 이상의, IDE (Integrated Development Environment)이다.
iOS 개발에 IDE를 사용함으로써, 얻는 장점으로는 프로젝트 빌드, debugging, code-sign과 같은 과정들이 쉬워진다는 점이 있다.
하지만 IDE에서 제공하는 모든 기능들은 Mac의 저장공간을 차지하게 된다. Xcode를 설치하는 것으로만 11GB정도의 용량을 차지하게 된다. 하지만 이 11GB바이트는 빙산의 일각일 뿐이고, Xcode는 저장공간을 많이 잡아먹기로 악명이 높다.
Xcode는 크게 아래와 같은 것들에 의해서 사이즈가 늘어나게 된다.
- Derived Data
- Caches
- Old archives
- Unavailable Simulators
- Device support files
이것들은 단순히 저장공간을 잡아먹는 것을 넘어, 각종 버그와 compile 문제를 야기할 수 있다. 예를 들어, 앱을 빌드할 때 문제가 있으면 derived data나 Caches 폴더를 날리면 문제가 해결되기도 한다.
하지만 Xcode의 아무 data나 날리면 문제가 생길 수 있기 때문에 주의해야한다.
Derived Data
~/Library/Developer/Xcode/DerivedData
- finder에서 '이동' -> '폴더로 이동' 을 클릭 후 위의 경로를 입력하면 Derived Data폴더로 이동가능
- Xcode는 프로젝트를 build하고 나온 build 파일들을 모두 해당 폴더에 저장한다.
- ModuleCache.noindex
- Xcode가 미리 컴파일해놓은 모듈들을 저장해놓는 역할을 하는 폴더
- Xcode는 이 Cache된 모듈들을 project들 사이에서 공유하여 build 시간을 단축시킨다.
- Derived Data를 지워야 하는 경우
- Derived Data 안에 있는 모든 것은 삭제해도 안전한 것들이다.
- 사실, 대부분의 compile문제들은 일반적으로 Derived Data만 삭제하면 해결이 된다.
- 대신, 삭제하게 되면 그 다음 project 빌드 시엔 빌드 속도가 더 오래 걸리게 된다.
- Derived Data 삭제하기
- 가장 간단한건 전체 폴더를 finder에서 지우면 된다.
- 다만 특정 프로젝트의 derived Data 지우고 싶을 땐 해당 폴더만 지우는 게 빌드 속도 측면에선 더 나을 수 있다.
- Derived Data의 build 파일은 debug용 build 파일이고, archive된 release 버전의 파일들은 다른 곳에 저장되어 있다.
Archives
~/Library/Developer/Xcode/Archives
- TestFlight 혹은 app store에 배포를 위해 app을 아카이브할 때마다, mac의 local 저장소에 archive파일이 저장이 된다.
- 만약 중간에 지우지 않았다면 몇 년된 아카이브 파일이 존재할 수도 있다.
- Archives 폴더로 들어가보면 날짜별로 폴더들이 정리되어있고 해당 폴더들 아래에 .xcarchive 파일들이 존재한다.
- .xcarchive파일을 지우면 된다.
- Archives를 지워야 하는 경우
- Derived Data랑 다르게 Archives 폴더는 지워도 나중에 빌드하는 데 영향을 주지 않는다.
- 만약 예전 버전의 archive 파일을 다시 release해야 된다면, 오래된 .xcarchive파일을 굳이 안 지우는게 나을 수도 있다.
- 그리고 app을 debugging할 때 필요한 dSYM이라고 불리는 파일이 archive 내부에 존재하기 때문에 더 이상 해당 version의 앱이 필요없다고 판단될 때 지우는 게 좋다.
Simulator
xcrun simctl delete unavailable
- Simulator의 앱을 설치하면 mac의 일부 저장공간을 사용하게 된다. 예를 들어, simulator도 사진을 저장할 수가 있고 사진 저장 시 mac의 저장공간을 사용하게 된다.
- Simulator 실행 후, Device -> Erase All Content and Settings를 클릭하면 default content 데이터 외에 나머지 데이터가 지워지게 된다.
- 이용불가능한 Simulator 지우기
- Apple은 새로운 iPhone을 출시할 때마다, 새로운 Version의 Xcode와 iOS 또한 출시한다.
- 새로운 버전의 iOS simulator 또한 출시되고, 오래된 버전의 simulator는 쓸모가 없어진다.
- 쓸모 없어진 simulator들은 지우는 게 저장공간 관리하는데 도움이 된다.
- Terminal.app에서 위의 명령어를 입력하면 사용불가능한 simulator들을 지우게 되는데, 결과창에 아무것도 뜨지 않는다면 정상적으로 삭제된 것이다.
Device Support
~/Library/Developer/Xcode/iOS DeviceSupport
- Mac에 app을 설치하기 위해 물리적인 device를 연결할 때, Xcode는 device support라는 파일들을 만들어 낸다.
- Xcode는 이 파일들을 이용해서, crash log 보기와 같은 개발자 기능을 지원한다.
- Device Support파일들은 iOS 각 버전마다 존재한다.
- iOS 14.1, 14.2, 14.2.1 과 같은 방식으로 존재함
- Xcode는 이 파일들을 자동으로 삭제해주지 않지만, 수동으로 지우는 것은 문제가 되지 않는다.
- Device를 연결할 때마다 Xcode가 자동으로 새로 device support파일을 생성해준다.
- 해당 파일들의 용량은 몇 GB에 달하기 때문에 저장공간의 cleaning 시, 가장 최우선 시 되는 폴더이다.
- watchOS나 tvOS 같은 경우에도 플랫폼 별로 비슷한 경로로 찾아들어가면 해당 폴더를 찾을 수 있다.
Caches
~/Library/Caches
- cache는 data를 재계산할 필요없이 더 빠르게 프로그램을 실행할 수 있게 해주는 저장공간이다.
- Cache는 임시로 저장되는 data이기 때문에 지워도 program에 문제가 되지 않고, 언제든지 재생성하게 된다.
- 하지만 cache가 큰 경우엔, cache를 re-build할 때 delay가 생길 수 있다.
- Xcode나 관련 tool들에 문제가 있을 때, caches폴더를 지우면 도움이 될 수도 있다.
- 대부분의 Cache는 ~/Library/Caches에 저장되며 Xcode와 관련된 cache는 ~/Library/Caches/com.apple.dt.Xcode 에서 찾을 수 있다.
728x90
'iOS > 설명' 카테고리의 다른 글
[iOS] iOS Keychain (0) | 2022.08.20 |
---|---|
[iOS] Keep Xcode version vs Use version on Disk (0) | 2022.08.20 |
[iOS] UIScrollView contentInsetAdjustmentBehavior (0) | 2022.08.02 |
[iOS] IPA 파일 (0) | 2022.08.02 |
[iOS] Framework vs Library (0) | 2022.08.01 |
댓글