CoreDataとCloudKitの自動連携

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公式

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

2 件のコメント

  • udemy拝見しました!
    cloudKitのdashboardでdeployしたのち、アプリを再度appstoreにアップして使ってみましたが他人のAppleIIDでは同期がされません。(自分のAppleIDでは同期されます)
    よろしければudemyか本記事にDeployの注意事項も記載いただけると嬉しいです。。
    お忙しいところお手数おかけします。

    • コメントありがとうございます!!
      Udemyの方も見て頂いたようで良かったです!
      同期されたようで良かったです!!
      IDが同じでないといけない点は大事ですよね!記載しておきたいと思います!

  • t へ返信する コメントをキャンセル

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    ABOUTこの記事をかいた人

    個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog