Core Data
テクノロジーを使用するアプリをお持ちの場合は、CloudKit
サポートを簡単に追加できます。
CloudKit
を利用すれば、データベースに保存されたデータをユーザーのデバイス間で同期させることができます。
CoreData + CloudKit
機能は、デフォルトで、ユーザーの情報をプライベートデータベースに保存します。つまり、ユーザーが他のデバイス上で同じApple IDを使ってサインインした場合にのみ保存されたユーザーの情報にアクセスできます。
ステップ 1. Xcodeプロジェクト設定で必要な機能をオンにする。“iCloud”の"CloudKit”をオンにする。
「CloudKit」をオンにします
既存の"Containers"のトグルボタンをどれかひとつクリックするか、プラスアイコンをクリックして新規"Container"を加える。
新規"Container"を加える:
追加ボタンをクリックします
新しい「Container」の名前を入力してください

ステップ 2. Core Data
の設定で CloudKit
サポートをオンにします
データベースモデルを変更
- まず、
. xcdatamodeld
ファイルを開きます -
Configuration
タブで構成を選択します:

- 画面の右側で、クリックし、
CloudKit
で使用をオンにします (Used with CloudKit)

コード内のクラウドコンテナにアクセスする
そして、すべてのNSPersistentContainer
をNSPersistentCloudKitContainer
に置き換えます。AppDelegate.swift
ファイルに1つある可能性があります。
元の:
let container = NSPersistentContainer(name: "CoreDataDemo")
新:
let container = NSPersistentCloudKitContainer(name: "CoreDataDemo")
ステップ 3. テストとデプロイ
-
クラウドデータベースを設定する必要がないことに注意してください。データベース構造は自動的に
CloudKit
の開発サーバーにデプロイされます。次に、しばらくの間アプリを使用し、Core Data
データが生成されていることを確認する必要があります。 -
このステップは重要です!次に
CloudKit
のオンラインポータル http://icloud.developer.apple.com へ行き、あなたのアプリを左側から見つけて、開発データベースをプロダクションにデプロイします。これを忘れると、App Storeからあなたのアプリをダウンロードした実際のユーザーが、データをクラウドに同期できなくなります。
最後にはiCloudの開発用データベースを本番環境にデプロイする必要があります。

CloudKitとCore Dataを使用する際の注意点については、こちらの記事もご覧ください。