LoginSignup
16
10

More than 1 year has passed since last update.

Core Data を使用する既存のアプリに CloudKit 機能を追加

Last updated at Posted at 2020-05-21

Core Data テクノロジーを使用するアプリをお持ちの場合は、CloudKit サポートを簡単に追加できます。

CloudKit を利用すれば、データベースに保存されたデータをユーザーのデバイス間で同期させることができます。

CoreData + CloudKit 機能は、デフォルトで、ユーザーの情報をプライベートデータベースに保存します。つまり、ユーザーが他のデバイス上で同じApple IDを使ってサインインした場合にのみ保存されたユーザーの情報にアクセスできます。

ステップ 1. Xcodeプロジェクト設定で必要な機能をオンにする。“iCloud”の"CloudKit”をオンにする。

image.png

「CloudKit」をオンにします

image.png

既存の"Containers"のトグルボタンをどれかひとつクリックするか、プラスアイコンをクリックして新規"Container"を加える。

新規"Container"を加える:

追加ボタンをクリックします

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3633353333302f39613239373166332d623134392d343962622d656466332d3661646132313237623962392e706e67.png

新しい「Container」の名前を入力してください

Screen Shot 2020-05-12 at 1.06.19 PM.png

ステップ 2. Core Data の設定で CloudKit サポートをオンにします

データベースモデルを変更

  1. まず、. xcdatamodeld ファイルを開きます
  2. Configuration タブで構成を選択します:
Screen Shot 2020-05-21 at 16.28.11.png
  1. 画面の右側で、クリックし、CloudKit で使用をオンにします (Used with CloudKit)
Screen Shot 2020-05-21 at 16.29.37.png

コード内のクラウドコンテナにアクセスする

そして、すべてのNSPersistentContainerNSPersistentCloudKitContainerに置き換えます。AppDelegate.swiftファイルに1つある可能性があります。

元の:

let container = NSPersistentContainer(name: "CoreDataDemo")

新:

let container = NSPersistentCloudKitContainer(name: "CoreDataDemo")

ステップ 3. テストとデプロイ

  1. クラウドデータベースを設定する必要がないことに注意してください。データベース構造は自動的に CloudKit の開発サーバーにデプロイされます。次に、しばらくの間アプリを使用し、Core Data データが生成されていることを確認する必要があります。

  2. このステップは重要です!次にCloudKitのオンラインポータル http://icloud.developer.apple.com へ行き、あなたのアプリを左側から見つけて、開発データベースをプロダクションにデプロイします。これを忘れると、App Storeからあなたのアプリをダウンロードした実際のユーザーが、データをクラウドに同期できなくなります。

最後にはiCloudの開発用データベースを本番環境にデプロイする必要があります。

Screen Shot 2020-05-11 at 4.32.00 PM.png

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


:relaxed: Twitter @MszPro

:sunny: 私の公開されているQiita記事のリストをカテゴリー別にご覧いただけます。

16
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
10