🔥

Get started with privacy manifests ざっくりまとめ

2023/06/18に公開

Get started with privacy manifestsを視聴したときのメモです。詳しい情報、正確な情報は元動画を参照してください。

これまで

Privacy Nutrition Labelsを見ればアプリがどのようにデータを収集して使用しているかがわかる。

また、App Tracking Transparencyを通じてユーザがトラッキングを制御できるようにしてきた。

Privacy Manifests

アプリのプライバシーにはサードパーティのSDKも大いに関係してくる。サードパーティSDKがどんなプライバシー情報を収集しているかをアプリ開発者が知るのは困難なので、プライバシーマニフェストを導入した。

サードパーティSDK開発者は PrivacyInfo.xcprivacy という名前のファイルを作成して、SDK内にプライバシーマニフェストを含めることができる。

このファイルは、SDKが収集するデータタイプ、各データタイプがどのように使用されるか、ユーザにリンクされているかどうか、App Tracking Transparencyポリシーで定義されているようなトラッキングに使用するかどうかを宣言するプロパティリストになる。

この例だとトラッキングしていないことがわかる。

アプリの機能とパーソナライズのためにユーザの名前、ユーザIDを収集していることもわかる。

アプリの機能のために写真やビデオも収集している様子。

プライバシーマニフェストのデータの種類とデータ使用の定義はPrivacy Nutrition Labelsと同じなので、詳細についてはApp privacy details on the App Storeというドキュメントを見ると良い。

プライバシーレポート

新しいプライバシーレポートはプライバシーマニフェストの情報を1箇所にまとめることができる。Xcode 15ではApp Storeに提出するアプリをビルドするときプロジェクト内の全てのプライバシーマニフェストを集約、要約したプライバシーレポートを作成できる。作成するにはXcodeオーガナイザー → アーカイブのコンテキストメニュー → Generate Privacy Reportを選択する。

プライバシーレポートはPDFで扱いやすくなっている。Privacy Nutrition Labelsと同様の項目で整理されている。

Privacy Nutrition LabelsについてはCreate your Privacy Nutrition Labelを見ると良い。

トラッキングドメイン

プライバシーマニフェストのもう一つの機能は、トラッキングドメインの管理を支援すること。許可なくトラッキングするつもりはないものの、トラッキングに使用されるドメインに意図しないネットワーク接続をしてしまうエッジケースがあるかもしれない(一部のサードパーティSDKはユーザがトラッキング許可を与えていない場合、手動でトラッキングを無効にしなければならないケースがある)。
アプリ開発者、サードパーティSDK開発者が許可なくユーザをトラッキングしないように、プライバシーマニフェストにはトラッキングドメインが含まれる。ユーザがトラッキングを許可していない場合、iOS 17ではプライバシーマニフェストに指定されているトラッキングドメインへの接続を自動的にブロックする。
この設定はサードパーティSDKのプライバシーマニフェストだけでなく、アプリのプライバシーマニフェストでも設定できる。

より詳しい情報はUser privacy and data useドキュメント、WWDC22のExplore App Tracking Transparencyを見ると良い。

Xcode 15ではPoints of Interest機能がトラッキングドメインに接続しているかどうかを確認するのに役立つ。

Required Reason API

たとえユーザからトラッキングの許可を得ていたとしても、フィンガープリント(デバイスからの信号を使用して、デバイスまたはユーザを識別すること)は許されないこと。
フィンガープリントに誤用される可能性のある既存APIの中には、適切に活用すると強力なユーザエクスペリエンスを提供するものもある。フィンガープリントを避けつつ有用な使い方をするケースをサポートするためにRequired Reason APIと呼ばれる新しいAPIカテゴリを作った。例えばその中の一つのNSFileSystemFreeSize APIは、ファイルをディスクに書き込む前に十分なディスク容量があるかどうかを確認するのであれば使用をサポートしている。Required Reason APIのリストはAppleの開発者ドキュメントで確認できるようになる。

フィンガープリントの可能性からユーザを保護するために、アプリとSDKは承認された理由でのみ、Required Reason APIを使用することができる。これらのAPIからもらったデータは他の目的に使用することはできない。必要なAPIとその理由はプライバシーマニフェストに記載する。

Privacy-Impacting SDKs

ユーザのプライバシーに特に大きな影響を与えるサードパーティのSDKがいくつかある。これらのリスト、および今後のアップデートはAppleの開発者ドキュメントで公開する。このPrivacy-Impacting SDKを含むアプリは、そのSDKのコピーとプライバシーマニフェストを含める必要がある。
また、Xcode 15ではSDK署名もサポートしている。署名を含めることはすべてのサードパーティSDKにおけるベストプラクティスになる。Privacy-Impacting SDKを含むアプリを開発している場合は、SDKが署名されていることを確認する必要がある。
SDK署名の詳細についてはVerify app dependencies with digital signaturesを見ること。

これから

2023年秋から、App Storeにて既存/新規のアプリがPrivacy-Impacting SDKを使っているかどうかを確認する。もしPrivacy-Impacting SDKに署名、プライバシーマニフェストが含まれていない場合は、Appleがアプリ開発者にメールを送信する。また、承認された理由を含めることなくRequired Reason APIを使っているアプリにもメールを送信する。
2024年春からアプリレビューにこれらが考慮されるので、新規/既存のアプリはアプリを提出する前に問題に対処する必要がある。

次にすべきこととしては:

  • アプリ開発者:サードパーティSDK開発者からSDKプライバシーマニフェストを含めるよう依頼する。そしてアプリを提出するときは必ずXcodeのプライバシーレポートを参照して、最新のPrivacy Nutrition Labelsにする。
  • サードパーティSDK開発者:署名とプライバシーマニフェストを取り入れる。
  • すべての開発者:プライバシーマニフェストでTracking DomainsとRequired Reason APIの使い道を宣言する。

その他参考資料

App Storeのプライバシーに関する最新情報
Describing data use in privacy manifests

Discussion