[iOS] Sandbox File System[1]

유인호·2024년 1월 18일
0

iOS

목록 보기
18/64

1. Sandbox File System이란?

iOS에서 앱 구동시 필요한 파일들을 저장해 놓는 구조로써, 임의적으로 유저들이 접근할 수 없다. 그 이유는 이 파일들이 어디에 저장되는지 애플만 알고 있고, 개발자들은 Xcode를 통해서 설치한 앱에 한정하여 파일의 구조를 다운받아 볼 수 있다. 만약 경로를 알아내더라도 수시로 파일의 위치를 변경하여 사실상 찾기가 불가능하다.


iOS Sandbox File System이라고 검색하면 제일 많이 나오는 사진 중 하나이다.

앱은 각자마다 독자적인 Sandbox를 갖게 된다. 앱마다 이 Sandbox를 넘을수도 없고 넘길수도 없다.

일단 알아보기에 앞서서 Xcode에서 이 Sandbox를 다운을 받아보도록 하자.
Xcode에서 실기기로 빌드하고, Shift + Command + 2를 누르면 기기의 종류가 나오게 되는데, 실기기를 선택하면 아래에 Xcode로 빌드한 앱들을 볼 수있다.
Download Container를 선택하게 되면 다운 받을 수 있다.

다운받은곳에서 패키지 내용 보기를 하면 내용물을 볼 수 있게 된다.

그럼 위의 사진과 디렉토리 구조가 똑같은지 확인해보도록 하자.

이름이 완벽하게 똑같진 않지만 System구조가 같은걸 볼 수 있다.

여기서 앱의 기본 설정들을 볼 수 있고,

[iOS, Swift] UserDefault 사용해서 데이터 저장, 사용하기 여기서 사진을 가져왔는데, inIo.pilst같은 데이터들이 저장되는 곳이기도 하다. 또한 HTTP 통신을 하게 되면 자동으로 캐싱이 되는데, 그것도 여기에 저장된다.

여기저기 둘러보면 이런 스크릴샷을 발견할 수 있는데, 이것들은

여기서 쓰는 이미지들로, 앱을 나갈때 자동으로 라이트/다크모드의 화면을 캡쳐하여 보여주게 된다.


2. 말이 좀 길었지만

내부 구조를 조금 더 자세히 보자면 이런식으로 생겼다.

여기서 각자 하는 일들을 정리해보자면...


자매품

위젯이나 워치앱등 그런애들은 완전히 다른 앱 취급을 받기에 Sandbox가 따로 생성되게 되는데, 같은 Sandbox를 공유하려면 App Groups를 설정해주면 된다.

profile
🍎Apple Developer Academy @ POSTECH 2nd, 🌱SeSAC iOS 4th

0개의 댓글