WidgetKitのセキュリティ

WidgetKitは、デベロッパがウィジェットとWatchコンプリケーションを提供するために使用するフレームワークです。どちらにも機密情報が表示されることがあり、「常にオン」画面があるデバイスでは特に、非常に目に付きやすくなる可能性があります。

iPhoneでは、ロック画面上と「常にオン」のときに機密データを表示するかどうかを、ユーザが構成できます。「設定」では、「設定」>「Face IDとパスコード」の「ロック中にアクセスを許可」セクションで、ロック画面ウィジェットのデータアクセスを無効にすることができます。

Apple Watchでは、「設定」>「画面表示と明るさ」>「常にオン」>「機密コンプリケーションを非表示」と選択することで、「常にオン」のときに機密データを表示するかどうかをユーザが構成できます。また、すべてのコンプリケーションまたは個々のコンプリケーションに墨消し済みの内容を表示することを選択することもできます。

ユーザが個人情報と見なされる内容を非表示にすることを選択した場合、WidgetKitはプレースホルダまたは墨消しをレンダリングします。墨消しを構成するには、デベロッパは次のことを実行する必要があります:

1. redacted(reason:)コールバックを実装します。

2. privacyプロパティを読み出します。

3. カスタムプレースホルダビューを提供します。

また、デベロッパはunredacted()ビュー修飾子を使用してビューを墨消しなしとしてレンダリングすることもできます。

デベロッパは、個々のビューをプライバシーセンシティブとしてマークする代わりに、例えばウィジェットの内容全体がプライバシーセンシティブである場合は、ウィジェット機能拡張にデータ保護機能を追加することができます。ユーザがデバイスのロックを解除して、選択されているプライバシーレベルを照合するまで、WidgetKitにはウィジェットの内容ではなくプレースホルダが表示されます。デベロッパは、Xcodeでウィジェット機能拡張のデータ保護機能を有効にしてから、提供したいプライバシーのレベルに合う値にData Protectionエンタイトルメントを設定する必要があります:

  • NSFileProtectionComplete

  • NSFileProtectionCompleteUnlessOpen

デバイスがパスコードで保護されている場合、WidgetKitはこれらのウィジェットのコンテンツを非表示にし、デバイスが再起動されてからユーザが認証されるまで、プレースホルダを表示します。また、これらのiOSウィジェットをMacでiPhoneウィジェットとして使用することはできません。

公開日: 2024年5月07日
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
役に立ちましたか?
入力可能な文字数: 250
入力可能な文字数は 250 です。
フィードバックありがとうございます。
Morty Proxy This is a proxified and sanitized view of the page, visit original site.