every Tech Blog

株式会社エブリーのTech Blogです。

Privacy Manifests対応についての調査

WWDC23で発表されているように、Xcode 15からPrivacy Manifestsという機能が追加されています。 Privacy Manifestsの実体は PrivacyInfo.xcprivacy という名前のplistファイルで、アプリやSDKのプライバシーに関する情報を記述します。

2024年春以降、Privacy ManifestsはApp Storeのレビューの対象になり、新規やアップデートの際に適切に対応しないとリジェクトされるようです。

Privacy Manifestsにはプライバシーに関する複数の情報が記述できますが、レビューで義務化されるものはその一部だけのようです。 この記事では、2024年春時点でアプリに求められる最低限の対応について調べました。

参考

developer.apple.com

developer.apple.com

developer.apple.com

developer.apple.com

developer.apple.com

Privacy Manifestsの機能

Privacy Manifestsにはプライバシーに関する複数の情報を記述できます。

  • Privacy report
  • Tracking domains
  • Required reason APIs

Privacy report (Privacy Nutrition Labels)

PrivacyInfo.xcprivacyNSPrivacyCollectedDataTypes が該当します。

App Storeでアプリを公開するとき、個人情報の収集とトラッキングについてのレポートが必要です。アプリには多くの場合サードパーティーSDKが組み込まれており、それらのSDKで収集/トラッキングされる情報についてもアプリ開発者が把握して、一括して表示する責任があります。 サードパーティーSDKで収集/トラッキングされる情報についてそれぞれ調査し、それらを統合してレポートを作成するのは手間がかかり、不正確になる可能性もありました。

Privacy Manifestsで提供されるPrivacy report は、この問題を解決するためのものです。サードパーティーSDKに含まれるPrivacy Manifestsには収集とトラッキングの情報が含まれており、Xcodeがそれらを自動的に統合して一つのわかりやすいレポートにまとめてくれます。

Privacy Manifestsの内容が自動的にApp Storeに反映され、手動で入力する必要がなくなると思っていたのですが、現時点ではそうではないようです。 Xcodeが出力したレポートを参照しながらApp Store Connectに入力する想定のようです。

2024年春時点では対応は必須でありません。

Tracking domains

PrivacyInfo.xcprivacy では、 NSPrivacyTracking , NSPrivacyTrackingDomains で記述します。

App Tracking Transparencyによるトラッキングの制限をより確実に行うための機能です。

トラッキングをする前にトラッキング許可ステータスをチェックする必要がありますが、SDKの利用方法の誤りなどによって意図せずトラッキングが行われてしまう場合があります。

意図しないトラッキングを防ぐために、Privacy Manifestsにはトラッキングを行うドメインが含まれています。ユーザーがトラッキング許可を提供していない場合、iOS 17 は、アプリに含まれるPrivacy Manifestsで指定されているドメインへの接続を自動的にブロックします。

これによって、実装ミスなどにより意図せずトラッキングをしてしまう可能性をなくすことができます。

2024年春時点では対応は必須でありません。

Required reason APIs

PrivacyInfo.xcprivacy では、 NSPrivacyAccessedAPITypes が該当します。

ユーザーがアプリにトラッキングの許可を与えていたとしても、フィンガープリンティングは許されません。

フィンガープリンティングに悪用される可能性のあるAPIのリストが公開されています。

developer.apple.com

これらのAPIを使用する場合には、Privacy ManifestsにAPIを使用する理由を記述する必要があります。これに基づいて、APIが本来の目的に沿って適切に使用されているかレビューされます。

2024年春時点で対応必須です。

サードパーティーSDKの対応

一般的に使用されるサードパーティSDKのリストが公開されています。

developer.apple.com

アプリにこれらのSDKが組み込まれている場合は、SDKのPrivacy Manifestsを含める必要があります。 SDKがPrivacy Manifestsに対応していることを確認して、必要ならSDKを最新版にアップデートしたり、場合によっては他のSDKへの変更を検討する必要があるかもしれません。

2024年春時点で対応必須です。

まとめ

以上をまとめると、2024年春時点でアプリに求められる最低限の対応は以下のようになると考えています。

  • Required reason APIs の対応
    • 該当するAPIを使用している場合、 PrivacyInfo.xcprivacy を作成し、APIの使用理由を記述する必要があります。
  • サードパーティーSDKの対応
    • リストに該当するサードパーティSDKを利用している場合、SDKがPrivacy Manifestsに対応し、署名されている必要があります。SDKの対応状況を確認し、必要ならSDKを最新版にアップデートしたり、場合によっては他のSDKへの変更を検討する必要があるかもしれません。