Library 디렉토리Library/Application SupportLibrary/CachesLibrary/SplashBoard/Snapshots/주의사항Library/CookiesLibrary/Preferences
Library 디렉토리
Data/Application/Library
- 앱의 캐시 데이터, 네트워킹 구성을 포함한 중요 파일 저장.
Caches
디렉토리 제외하고는 iTunes, iCloud에 백업도 됨.
- 주로 서브디렉토리인
Application Support
와Caches
를 이용하지만 - 커스텀 디렉토리도 사용 가능
- Preference, Cookies, Saved Application Sate, WebKit 등
- 필요할 때 시스템에서 자동 생성
Library/Application Support
- 파일 받기, 저장을 위한 디렉토리가 아님.
- 앱이 사용할 추가적인 데이터 저장을 위한 디렉토리
- Ex) 추가로 구매한 다운로드 가능 콘텐츠, 설정파일, 최고점수 등
- 실행중인 앱 보조
CoreData
의 기본 저장 경로
- 디폴트로 iTunes, iCloud 백업되나,
NSURLIsExcludedFromBackupKey
속성 설정 시 백업 X
Library/Caches
- 앱의 동작 속도 / 데이터 절약 등을 위해 사용하는 공간
- 유지해야 할 중요한 데이터 X
- iTunes, iCloud에 백업되지 않음.
- 애플에서 Caches 폴더 관리 책임이 앱에게 있다고 밝힌 바 있으나,
- 실제로 OS도 Caches와 그 하위 디렉토리 조작 가능.
- 저장공간 부족 시, 시스템이 알아서 삭제 가능.
- 가끔 웹 캐시 콘텐츠를 하위 디렉토리에 저장하기도
- Ex) Caches/com.mycompany.myapp/…
- HTTPS에서 받은 정보 꽤 오랫동안 보존 가능하므로 민감정보 누출 주의
Library/SplashBoard/Snapshots/
- 책, 블로그 등
Library/Caches/Snapshots
경로라 알려져 있지만
- 현재(ios 13기준)는
SplashBoard
서브 디렉토리 내에 저장.
- 앱이 백그라운드로 진입 할 때, OS가 자동으로 스냅샷 저장.
- Foreground로 돌릴 때 목록에 snapshot 이미지로 보여짐
- 화면을 그대로 찍어서 남기는 경우 민감 정보 누출 가능.
주의사항
- 스냅샷 남기는 것에 대해 별도 처리를 하지 않았다면 중요 정보 노출
- 신용카드 번호 등
- 스냅샷 경로에서 이미지 형태로 추출 가능.

Library/Cookies
- URL 로딩 시스템에 의해 설정된 쿠키 저장.
NSURLRequest
를 만들 때 아래 방법 중 하나로 쿠키 설정.- 기본 시스템 쿠키 정책
- 사용자가 명시한 방법
- OS X와 다르게 iOS는 앱 사이에 쿠키를 서로 공유하지 않음.
- 해당 앱만 사용하는 쿠키 저장.
Library/Preferences
- 앱의 설정 정보 저장
- 앱 프리퍼런스를 저장하나 앱이 직접 파일에 쓸 수 없음.
UserDefaults
,Setting.bundle
,CFPreferences
API 이용.
- 하지만 API는 앱의 프리퍼런스 파일을 평문으로 저장.
- 사용자의 민감 정보, 권한 등 저장하면 안됨!