🌥️

Core Data with CloudKit - 初期設定

2022/01/09に公開

新しい Xcode Project を作成する

※ Xcode Project を作成済みの場合はスキップする。

  1. 「Welcome to Xcoce」の「Create a new Xcode project」、もしくは「File」>「New」>「Project」に進む。
  2. Xcode プロジェクトのテンプレートを選択する。なお、後述の Core Data および CloudKit を使うためのチェックボックスが「Multiplatform」「iOS」「macOS」「tvOS」の「App」テンプレートにしか表示されていないので、これらのいずれかを選ぶ。
  3. 「Use Core Data」と「Host in CloudKit」にチェックを入れることを忘れずに、次に進む。
  4. プロジェクトの保存場所を指定し、作成を終える。

iCloud を有効にする

  1. プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
  2. Capability の追加から「iCloud」を追加する。

CloudKit と Push Notifications を有効にする

  1. プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
  2. 「iCloud」の「Services」にある「CloudKit」のチェックボックスを選択状態にする。これにより「Push Notifications」も有効になる。
  3. すでに作成済みの Container がありそれを使う場合は、それにチェックを入れる。未作成の場合は「+」から新しい Container を作成する。

Background Modes の Remote notifications を有効にする

CloudKit 側で何かデータの更新があった際に、ユーザーへ通知することなくバックグラウンドでデータの反映等を行う場合は、Background Modes の Remote notifications を有効にする必要がある。

  1. プロジェクトの設定でアプリのターゲットを選び、「Signing & Capabilities」に進む。
  2. Capability の追加から「Background Modes」を追加する。
  3. 「Background Modes」の「Modes」にある「Remote notifications」のチェックボックスを選択状態にする。

NSPersistentContainerNSPersistentCloudKitContainer に置き換える

既存のコードで NSPersistentContainer が使われている箇所を、サブクラスである NSPersistentCloudKitContainer に置き換える。これでローカルの Core Data のデータを CloudKit のデータベースに同期する機能が追加される。

CloudKit に同期させる Configuration を設定する

  1. .xcdatamodeld ファイルを開く。
  2. CloudKit に同期させたい Configuration を選択する。
  3. データモデルエディターの中の「Use with CloudKit」チェックボックスを選択状態にする。

環境

  • Xcode 13.2.1 (13C100)

参考

https://developer.apple.com/documentation/coredata/mirroring_a_core_data_store_with_cloudkit/setting_up_core_data_with_cloudkit

Discussion