Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- cocoapod
- 러브자그레브
- 괌 자유여행
- Gradle
- 러브스플리트
- 스페인광장
- 강릉
- Device 등록
- swiftUI
- 시밀란
- Cocoapods #PrivateRepo #SpecRepo
- 연금저축펀드
- 세비야
- 공기먹는다이버스
- 그라나다
- xcode
- 지팍스페인
- 아시아나
- 크로아티아
- 대한항공
- 푸켓여행
- 도심공항
- 라이브러리
- Swift #Concurrency #쓰레드
- 스페인여행
- Concurrency #Swift #Combine
- 스플리트
- 리브어보드
- 스쿠버다이빙
- SwiftUI #Skeleton #데이터갱신
Archives
- Today
- Total
JEP's Diary
Xcode iCloud의 Key-value storage 여러앱에서 사용하기 본문
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앱에서 읽어오기가 가능하다.
참고
'Development > iOS' 카테고리의 다른 글
Xcode Device "000의 iPhone" isn't registered in your developer account. (2) | 2024.01.26 |
---|---|
Cocoapods Private Pods (0) | 2023.07.27 |
Concurrency(1) (0) | 2023.04.18 |
WalletConnect (1) (0) | 2023.04.14 |
WalletConnect(2) (0) | 2023.04.14 |