iOS 13から導入されたCoreDataとCloudKitの自動連携を試してみた。
Xcodeの設定
+Capabilityで iCloudとBackgroundModes(RemoteNotifications)を追加する。
iCloudのCloudKitにチェックをつける。

+ボタンの後にバンドルIDを入力、iCloud.が先頭に自動的に追加されてコンテナが作成される。
これで設定は完了、データは自動でクラウドに同期される。
CloudKit DashBoardについて
データを確認する場合はダッシュボードを使う。
上図の少し下の方に「CloudKit DashBoard」ボタンがあるのでブラウザで飛ぶ。
「This container has not been deployed to Production」と表示されているのが確認できる。
「Error loading container details.」が出る場合もある。
アプリを実行しデータを追加する。
「Schema」の「Record Types」にエンティティが追加される。

データの確認
DataのRecordsからデータベースとゾーンを以下のように指定してデータ検索ができる

上記のエラーが出るので、SchemaのIndexesにIndexを1つ追加する。

「recordName」+「QUERYABLE」を追加し、再度実行するとデータが確認できる。

AppStoreにリリースしたアプリではDevelopmentは使えない
Developmentは開発用のクラウドなので、AppStoreにリリースしたアプリでは使えない。
“Deploy Schema Changes” ボタンでデプロイする。
参考サイト
Udemyでも無料で解説しています。
https://www.udemy.com/course/swiftui-coredata-todo/learn/lecture/30398486#overview
Apple公式