🌥️
Core Data with CloudKit - 初期設定
新しい Xcode Project を作成する
※ Xcode Project を作成済みの場合はスキップする。
- 「Welcome to Xcoce」の「Create a new Xcode project」、もしくは「File」>「New」>「Project」に進む。
- Xcode プロジェクトのテンプレートを選択する。なお、後述の Core Data および CloudKit を使うためのチェックボックスが「Multiplatform」「iOS」「macOS」「tvOS」の「App」テンプレートにしか表示されていないので、これらのいずれかを選ぶ。
- 「Use Core Data」と「Host in CloudKit」にチェックを入れることを忘れずに、次に進む。
- プロジェクトの保存場所を指定し、作成を終える。
iCloud を有効にする
- プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
- Capability の追加から「iCloud」を追加する。
CloudKit と Push Notifications を有効にする
- プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
- 「iCloud」の「Services」にある「CloudKit」のチェックボックスを選択状態にする。これにより「Push Notifications」も有効になる。
- すでに作成済みの Container がありそれを使う場合は、それにチェックを入れる。未作成の場合は「+」から新しい Container を作成する。
Background Modes の Remote notifications を有効にする
CloudKit 側で何かデータの更新があった際に、ユーザーへ通知することなくバックグラウンドでデータの反映等を行う場合は、Background Modes の Remote notifications を有効にする必要がある。
- プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
- Capability の追加から「Background Modes」を追加する。
- 「Background Modes」の「Modes」にある「Remote notifications」のチェックボックスを選択状態にする。
NSPersistentContainer
を NSPersistentCloudKitContainer
に置き換える
既存のコードで NSPersistentContainer
が使われている箇所を、サブクラスである NSPersistentCloudKitContainer
に置き換える。これでローカルの Core Data のデータを CloudKit のデータベースに同期する機能が追加される。
CloudKit に同期させる Configuration を設定する
-
.xcdatamodeld
ファイルを開く。 - CloudKit に同期させたい Configuration を選択する。
- データモデルエディターの中の「Use with CloudKit」チェックボックスを選択状態にする。
環境
- Xcode 13.2.1 (13C100)
参考
- Setting Up Core Data with CloudKit | Apple Developer Documentation https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit/setting_up_core_data_with_cloudkit
Discussion