iCloud Storage 종류
각각 다른 목적을 가진 iCloud Storage 종류는 다음과 같다.
- Key-value storage
Key-value storage는 기본 설정, 설정, 간단한 앱 상태와 같은 개별 값을 위한 것이다. 주식이나 날씨 정보, 위치, 북마크, 최근 문서 목록, 설정 및 기본 설정, 간단한 게임 상태 등 소량의 데이터에 iCloud Key-value storage를 사용한다.
- Cloud document storage
iCloud document storage 는 사용자가 볼 수 있는 파일 기반 콘텐츠, 핵심 데이터 저장소 또는 기타 복잡한 파일 기반 콘텐츠를 위한 것. 워드 프로세싱 문서, 다이어그램, 그림, 복잡한 게임 상태를 추적해야 하는 게임 등 파일 기반 콘텐츠로 작업하는 앱에 iCloud document storage 공간을 사용한다.
- CloudKit storage
CloudKit storage는 모든 앱 사용자가 액세스할 수 있는 개인 또는 공용 데이터베이스에 데이터를 개별 기록으로 저장하기 위한 것. Key-value storage 및 iCloud document storage가 요구사항에 비해 부족한 상황에서는 CloudKit을 사용한다.
여러 앱에서 Key-value storage 공유하는 방법
예를 들어 무료버전앱과 유료버전앱의 데이터를 공유하는 등 여러 앱에서 key-value storage를 공유하고 싶을때 사용하는 방법이 있다.
[A앱과 B앱 사이에 key-value storage 공유 가정]
- 1. A앱(또는 B앱)을 기본 앱으로 지정하면 A앱의 iCloud 컨테이너가 공통 컨테이너가 된다.
- 2. A앱, B앱 모두 iCloud Capability를 추가한다.
- 3. A앱, B앱 모두 key-value storage를 활성화한다. 이때 Xcode는 자동으로 앱의 번들 ID를 기반으로 NSUbiquitousKeyValueStore(ubiquity-kvstore-identifier)의 id값을 할당한다.
따라서 그냥 두면 A앱, B앱에서 NSUbiquitousKeyValueStore의 id가 다르기 때문에 공유가 되지 않으니 수동으로 맞춰줘야 한다.
<key>com.apple.developer.ubiquity-kvstore-identifier</key>
<string>$(TeamIdentifierPrefix)$(CFBundleIdentifier)</string>
- 4. 기본앱인 A앱은 그냥 두고 B앱의 NSUbiquitousKeyValueStore의 id를 수동으로 변경해준다.
Finder에서 ProjectName > {ProjectName}.entitlements 파일을 텍스트 파일로 열어 com.apple.developer.ubiquity-kvstore-identifier 값을 A앱과 같게 변경해준다.
이렇게 설정하면 A앱에서 key-value storage에 저장한 데이터를 B앱에서 읽어오기가 가능하다.
참고
https://developer.apple.com/library/archive/documentation/General/Conceptual/iCloudDesignGuide/Chapters/iCloudFundametals.html#//apple_ref/doc/uid/TP40012094-CH6-SW26
'Development' 카테고리의 다른 글
OAuth2.0 동작 흐름 알아보기 (0) | 2024.10.20 |
---|---|
OpenID Connect 와 Auth2.0 (0) | 2024.10.19 |
Android12 SplashScreen 대응 방법 (feat. 앱 실행상태) (0) | 2024.07.30 |
Flutter In iOS 14+, debug mode Flutter apps can only be launched from Flutter tooling 오류를 만난 이유 (1) | 2024.06.08 |
Xcode Device "000의 iPhone" isn't registered in your developer account (0) | 2024.05.11 |