概要と免責
Apple's privacy manifestはWWDC23において発表された新しいガイドラインです。
2024年春からこのガイドラインが適用され、このガイドラインを満たさない場合、AppStoreへのサブミットがリジェクトされる可能性がありますが、現状は情報が出揃っていないように見えます。
今回AppleやUnityから公開されている情報をまとめました。
現時点ではガイドラインが実施されておらずどのようにも解釈できる内容ドキュメントであったりすることから、ここに記載されている内容が不正確な可能性があります。ここに記載されている内容はあくまでも筆者の解釈です。この文章の内容が不正確な場合でも筆者は一切の責任を負うことは出来ません。
可能な限り参照元のリンクを残しますので、自身の目でオリジナルのドキュメントを確認するようにして下さい。
Apple's privacy manifestとは
2024年春以降、App Store Connectに新規アプリまたは既存アプリのアップデートをアップロードする際に、該当するAPIをアプリでどのように使用しているかを正確に説明した承認される理由を説明する必要があります。これらを記述するファイルをアプリのプライバシーマニフェストと呼びます。
なお、Appleから公開されているドキュメントによるとUnityはサードパーティ製SDKという位置づけになっています。
- プロジェクトに含まれる該当するAPIをどのような目的でしているのかを記述したファイルです。
- プライバシーマニフェストファイルをXcode15以降で生成可能です。
- プロジェクト内に複数のプライバシーマニフェストが存在する場合、Xcodeにより1つのレポートに集約することが出来ます。
署名後にSDKが改変されていないことを保証する仕組みです。Xcodeによって検証されます。
UnityによるApple private manifest対応
Unityは段階的な対応を行っており、2024年2/5現在対応が完全には完了していません。
第1フェイズ
2021.3.34f1,2022.3.16f1,2023.2.5f1
UnityEngineの不要なAPIが削除されました。
第2フェイズ
2021.3.35f1,2022.3.18f1,2023.2.7f1
プロジェクト・パッケージ・SDKそれぞれで定義しているプライバシーマニフェストを統合する機能
第3フェイズ
現在進行中
Unity Engineライブラリへの署名
Unityは2021LTS以前へのプライバシーマニフェストをサポートしていません。それ以前のバージョンに関してはユーザーがこちらのドキュメントを参考に独自に行う必要がありますが、ユーザーはUnityEngineのライブラリへの署名が出来ません。
Unityによるプライバシーマニフェストの最新情報はUnityForumsで公開されています。
またApple のプライバシーマニフェストポリシーの要件 - Unity マニュアルが日本語かされました。素早い対応に感謝です。
Unity アプリケーションでのプライバシーマニフェスト導入手順
- このドキュメントを元にXcode 15以降でプライバシーマニフェストファイル(PrivacyInfo.xcprivacy)を作成する
- プロジェクトのAssets/Pluginsフォルダーにプライバシーマニフェストを保存する
- プライバシーマニフェストに Application内で使用されているrequired reason API、C# .Net framework APIsと承認された理由を記載する
- Unityでプロジェクトをビルド
- Xcodeでプロジェクト内の全てのプライバシーマニフェストをプライバシーレポートとして1つのPDFに統合する
- サブミット時にプライバシーレポートを参照して Privacy Nutrition Label に情報を入力する
- プライバシーマニフェストファイルのマージ機能のよって、プロジェクト内に存在する複数のプライバシーマニフェストファイルはマージされる。
- プライバシーマニフェストファイルはUnityプロジェクト内のAssets/Pluginsフォルダに配置する。(Assets/Plugins/iOSでは無いらしい)
- ファイル名が重複しないように以下のルールでプライバシーマニフェストファイルを作成する
- Unity Projectの場合:PrivacyInfo.xcprivacy
- Plugin/Package/SDKの場合:<PRODUCTNAME>.xcprivacy
SDKの署名に関する考察
SDKの署名に関して必須なのかが現時点では明確になっていません。
もしSDKの署名が必須の場合、2021LTS以前のUnityでは要件を満たすことが出来なくなります。
SDKの署名が必須か否かが不明なのはAppleから公開されているドキュメントである」近日中に適用されるサードパーティSDKに関する要件」に下記のような文言があり、必須ではなくお勧めと記載されている為です。
アプリでサードパーティSDKを使用する場合は、SDKに含まれるアプリのすべてのコードについても責任を持ち・・・すべてのSDKにこの機能を導入することをおすすめします。
何かご指摘・追加がありましたらコメントからご連絡下さい。
以上です。