ハイライト
CloudKit コンソールには、非表示コンテナ、iCloud として機能、および共有ゾーン管理が追加され、チームがコンテナ リストを整理し、iCloud アカウントの観点からプライベート データをクエリし、Web ページ上でゾーン全体の共有を設定できるようになります。
主要内容
CloudKit アプリケーションには通常、複数のコンテナがあります。開発段階では、テスト コンテナ、プロトタイプ コンテナ、および一時的な実験コンテナが構築されます。時間が経つと、Xcode と CloudKit コンソールのリストが乱雑になり、チーム メンバーにも同じノイズが表示されるようになります。
(00:51) このセッションでは、最初にこの問題を解決します。 CloudKit コンソールには新しい隠しコンテナがあります。開発者は、コンソールにどのコンテナを表示し、どのコンテナを非表示にするかを選択できます。非表示状態はチーム レベルで機能し、Xcode などの開発者ツールと同期されます。
もう 1 つの一般的な問題は、デバッグが困難です。ユーザーはプライベート データベース データが間違っていると言っていますが、開発者は自分の開発者アカウントを使用してデータをクエリしており、同じ観点から見ていません。
(02:08) Act As iCloud は、このデバッグ エントリを解決します。開発者はコンソールで iCloud アカウントにログインできるため、後続のレコード クエリとゾーン ビューは iCloud アカウントの観点から実行されます。データ関連領域のみに作用し、スキーマ操作は許可されません。
最後に、共有データがあります。 CloudKit 共有を使用すると、アプリはユーザー間でレコードを安全に共有できます。以前は、共有ゾーンの状態を理解するために、開発者はアプリのロジックと CloudKit データの間を行き来する必要がありました。
(04:23) 新しいバージョンのコンソールには、ゾーン共有を作成および表示するためのツールが用意されています。開発者は、[ゾーン] ページでゾーンを選択し、パブリックまたはプライベート共有を構成し、参加者が参加するための短い ID を取得できます。その後、このゾーン内の新しいレコードは自動的に共有されます。
詳細
使用されなくなったコンテナを非表示にする
(01:00) 非表示のコンテナはコンテナ セレクターから入力されます。コンソールを開いた後、トップレベルのナビゲーションでコンテナ セレクタを開き、[コンテナの管理] をクリックします。このメニューには、現在のチームのすべてのコンテナがリストされ、表示/非表示を切り替えることができます。
概念的な手順(API ではありません):
1. CloudKit Console を開く
2. 上部ナビゲーションから container selector を開く
3. Manage Containers をクリックする
4. 不要になったテスト用またはプロトタイプ用の container を見つける
5. その表示をオフにする
6. Xcode の container list を更新する
キーポイント:
- ステップ 1 ~ 3 により、セッション デモへの入り口となる新しい [コンテナの管理] メニューが表示されます。
- ステップ 4 は、テスト コンテナ、プロトタイプ コンテナ、および古いプロジェクト コンテナの処理に適しています。
- ステップ 5 コンテナを非表示にします。セッションは、非表示状態がチーム レベルで機能することを示します。
- ステップ 6 結果を確認します。非表示のコンテナはコンソールのリストから消えるだけでなく、Xcode のリストからも消えます。
この関数はスキーマを変更したり、データを削除したりしません。開発者ツールでの表示設定のみが変更されます。アクティブではなくなったが一時的に削除できないコンテナーをクリーンアップするのに適しています。
Act As iCloud を使用してユーザー視点のデータをデバッグする
(02:16)iCloud として機能すると、コンソールが iCloud アカウントとしてデータを表示できるようになります。 Session によって示されるシナリオは次のとおりです。一部のユーザーはプライベート データベースでデータの問題に遭遇し、開発者は表示されるレコードとゾーンを理解する必要があります。
概念的な手順(API ではありません):
1. CloudKit Console で通常のクエリを一度実行する
2. Act As iCloud account メニューを開く
3. ダイアログで iCloud account にログインする
4. ページ上部の Act As banner を確認する
5. records を再クエリする、または zones を表示する
6. banner ボタンから Act As session を停止する
キーポイント:
- ステップ 1 コントロールを確立します。通常のクエリでは、開発者アカウントのコンテキストが使用されます。
- ステップ 2 ~ 3 で iCloud アカウントに切り替えます。切り替え後、コンソールのコンテキストが変わります。
- ステップ 4 は安全に関するヒントです。セッションによれば、ページの上部にバナーが表示され、以降の操作には iCloud アカウントを使用するよう通知されるという。
- ステップ 5 では、データ領域 (クエリ レコードとビュー ゾーン) のみをカバーします。
- ステップ 6 このコンテキストを終了します。コンテナーまたは環境を切り替えると、Act As セッションも停止します。
(03:45) この能力には明確な境界があります。 Act As iCloud は、スキーマではなくレコードに基づいて動作します。スキーマにアクセスすると、Act As セッションが停止します。また、暗号化されたフィールドを読み取ることもできません。 Session は、暗号化されたフィールドは開発者には読み取り不可能なままであり、元のユーザーのみが復号化できると明示的に述べています。
コンソールで共有ゾーンを構成する
(04:47) ゾーン共有ルールは、ゾーン内の各レコードに適用されます。共有ゾーンには、ゾーン内のレコードにアクセスするためのオプションを保持する CloudKit 共有レコードがあります。セッションでは、共有ゾーンに既存の共有レコードを含めることはできないことも注意します。
概念的な手順(API ではありません):
1. Zones ページを開く
2. 共有する zone を選択する
3. details view で Configure zone wide sharing... をクリックする
4. public share または private share を選択する
5. public share では read-only または read/write を選択する
6. private share では participant レベルで権限を構成する
7. share を作成したら、短い ID を参加者に送る
8. 参加者は Records ページの Accept Shared Record メニューから参加する
キーポイント:
- ステップ 1 ~ 3 は、コンソールへの共通の入り口です。
- ステップ 4 共有の種類を決定します。パブリック共有ゾーンは、短い共有コードを取得して参加する人に適しています。
- ステップ 5 はパブリック ゾーンのみを対象とし、セッションには読み取り専用と読み取り/書き込みの 2 つのアクセス許可が表示されます。
- ステップ 6 はプライベート共有の場合です。プライベート共有ゾーンに参加するには、メンバーが参加者リストに含まれている必要があります。
- ステップ 7 コンソールによって生成された短い一意の ID を使用します。
- ステップ 8 は参加方法です。セッションの説明 [共有レコードの承認] メニューは [レコード] ページにあります。
(06:31) 構成が完了すると、ゾーン内に新しく作成されたレコードが自動的に共有されます。この機能は、開発環境および運用環境で共有構成を確認する場合、特に参加者の権限、共有タイプ、参加プロセスを確認する場合に適しています。
重要ポイント
1. CloudKit コンテナのクリーンアップ チェックリストを作成する
- 何をすべきか: チームのテスト コンテナ、プロトタイプ コンテナ、および過去のデモンストレーション コンテナをグループに分けて確認し、アクティブでなくなったプロジェクトを非表示にします。
- 実行する価値がある理由: 非表示状態はチーム全体に影響し、Xcode に同期されるため、チーム メンバーに表示される無関係なコンテナを減らすことができます。
- 開始方法: CloudKit コンソールのコンテナ セレクターから [コンテナの管理] に入り、最初に開発に使用されなくなったコンテナを処理します。
2. ユーザーデータの問題に対する繰り返しアカウントを作成する
- やるべきこと: Act As iCloud を使用してプライベート データベースにクエリを実行し、一般的なデータの問題に備えてテスト iCloud アカウントを準備します。
- 実行する価値がある理由: コンソール クエリは iCloud アカウントのパースペクティブに切り替わります。これは、「アカウントで特定のレコードが表示されない」問題のトラブルシューティングに適しています。
- 開始方法: [iCloud アカウントとして機能] メニューでテスト アカウントにログインし、レコード クエリを再実行し、切り替え前後の結果の違いを記録します。
3. 共有機能の権限マトリックス検証を行う
- やるべきこと: パブリック読み取り専用、パブリック読み取り/書き込み、およびプライベート参加者のアクセス許可をそれぞれテスト ケースに組み込みます。
- 実行する価値がある理由: セッションの説明 パブリック共有ゾーンとプライベート共有ゾーンの参加ルールは異なり、アクセス許可の構成も異なります。
- 開始方法: [ゾーン] ページで共有ゾーンを作成し、短い ID を使用して、[共有レコードの受け入れ] メニューからさまざまなテスト アカウントが参加できるようにします。
4. 機密フィールドに対するデバッグの期待値を確認する
- やるべきこと: アプリ内の暗号化されたフィールドをリストし、Act As iCloud を使用しても開発者が読み取れないフィールドを特定します。
- 実行する価値がある理由: セッションでは、暗号化されたフィールドは元のユーザーのみが復号化できると明示的に述べていますが、これはプライバシーとセキュリティの境界です。
- 開始方法: iCloud として機能を使用して、暗号化されたフィールドを含むレコードを表示し、チームのデバッグ ドキュメントでこれらのフィールドのクリア テキストを読む必要がないことを確認します。
関連セッション
- CKTool JS の紹介 — CloudKit のスキーマ、レコード、ツールチェーンのワークフローを JavaScript で自動化します。
- Core Data と CloudKit の使用を最適化する — テストとデータ スケールの観点から Core Data と CloudKit の同期を最適化します。
- Core Data スキーマを進化させる — Core Data スキーマの移行を操作し、それが CloudKit 同期とどのように関連するかを理解します。
コメント
GitHub Issues · utterances