Version: 2023.2
言語: 日本語
App slicing
iOS デバイスのトラブルシューティング

Apple のプライバシーマニフェストポリシーの要件

Apple は、その App Store 上の iOS、iPadOS、tvOS、visionOS プラットフォーム用の新規と更新アプリケーションに プライバシーマニフェストファイル を加えるプライバシーポリシーを導入します。

プライバシーマニフェストファイル (PrivacyInfo.xcprivacy) には、Unity アプリケーション、またはサードパーティの SDK、パッケージ、およびプラグインが収集する データの種類 と、特定の 理由が求められる API (Required Reason API) カテゴリを使用する理由が記載されています。

重要: 開発者またはサードパーティ SDK による理由が求められる API の使用がプライバシーマニフェストで宣言されていない場合、アプリケーションは App Store で拒否される可能性があります。詳細については、Apple の 理由が求められる API に関するドキュメントを参照してください。

Apple のプライバシーマニフェストポリシーに対応する Unity アプリケーションを準備する

Apple のプライバシーマニフェストポリシーが適用されるかどうかを確認するために、開発者のネイティブコード、C# コード、データ収集とトラッキングの実践を確認する必要があります。以下のガイドラインに従って、プロダクトにプライバシーマニフェストファイルを加える必要があるかどうかを判断してください。

  • アプリケーションが複数のサードパーティ SDK、パッケージ、プラグインを含む場合、これらのサードパーティコンポーネント (該当する場合) は、独自のプライバシーマニフェストファイルを個別に提供する必要があります。ノート: ただし、これらのサードパーティコンポーネントの所有者によってプライバシーマニフェストファイルが加えられていることを確認するのは、開発者の責任です。Unity は、サードパーティのプライバシーマニフェスト、およびそれらのデータ収集とトラッキングの実践について責任を負いません。

  • アプリケーションに C# .Net Framework APIs の Unity フレームワーク実装が含まれ、Apple の 理由が求められる API カテゴリに記載されている特定の API を呼び出す場合、API の使用についてプロダクトを評価する必要があります。データ収集およびトラッキングの実践の一部として構成されるものの評価については、Apple の プライバシーマニフェストファイル に関するドキュメントを参照してください。ノート: これらの API のそれぞれの使用を評価し、使用に対する該当する理由を宣言することは、開発者の責任です。

アプリケーションを開発するために Unity を使用する か、Unity アプリケーションで使用する SDK、パッケージ、プラグインを提供する かによって、プライバシーマニフェストファイルを提供する要件が異なる場合があります。

ノート: 上記のガイドラインは開発者の便宜のために提供されています。プロジェクトのプライバシーマニフェストを作成する前に、プライバシーマニフェストファイル に関する Apple のドキュメントを確認することが重要です。

Unity アプリケーションのプライバシーマニフェスト

Unity を使用してアプリケーションを開発する場合は、以下の手順を検討してください。

  1. ネイティブのアプリケーションコードが以下の API を使用しているかどうかを評価します。
    理由が求められる API カテゴリに記載されている API
    ・ Unity フレームワークの C# .Net Framework API

  2. ステップ 1 の条件の 1 つまたは両方を満たす場合は、Xcode で プライバシーマニフェストファイル を作成し、プロジェクトの Assets/Plugins フォルダーに保存します。

  3. プライバシーマニフェストファイルで、理由が求められる API、または C# .Net Framework API を使用するための承認される理由 (approved reason) を宣言します。

    重要: API を使用する理由を申告しない場合、アプリケーションは App Store によって拒否される可能性があります。

  4. ネイティブのアプリケーションコードが Apple によって分類された データタイプを収集するかどうかを確認し、プライバシーマニフェストファイルでそれらのデータタイプが該当することを宣言します。アプリケーションで使用されるサードパーティの SDK、パッケージ、プラグインは、独自の個別のマニフェストファイルを提供し、データ収集と承認される理由をもつ 理由が求められる API の使用を宣言する必要があります。

ノート:

  • Unity フレームワーク内のプライバシーマニフェストの正確さの確認、および Unity プロジェクトに含まれるサードパーティ コンポーネントでプライバシーマニフェストでの宣言が必要かどうかの確認を行うのは開発者の責任です。これらのサードパーティコンポーネントのプライバシーマニフェスト宣言へのリファレンスを検索することを推奨します。

  • Unity をライブラリとして使用してアプリケーションを開発する場合、ネイティブアプリケーションコードが Unity プロジェクトの外部で以下の情報を収集しているかを確認します。

サードパーティ SDK、パッケージ、プラグインのプライバシーマニフェスト

開発者がプラグイン、パッケージ、SDK の所有者で、Unity プロジェクトに .framework として加えるサービスかパッケージを提供する場合は、以下の手順を行います。

  1. ネイティブコードまたはネイティブライブラリに、以下のカテゴリの情報が含まれているかどうかを評価します。
  2. フレームワークのプライバシーマニフェストファイルで、収集されるデータの種類と、理由が求められる API を使用するための承認される理由を宣言します(該当する場合)。

プロダクトが Unity プロジェクト内で .framework として使用されていない場合は、.framework として提供することを検討してください。それができない場合は、以下の手順に従います。

  1. ネイティブコードまたはネイティブライブラリが以下の API を使用しているかどうかを評価します。
  2. API カテゴリの 1 つまたは両方が使用される場合は、Xcode で プライバシーマニフェスト ファイルを作成し、ソースコードに保存します。プラグイン Inspector ウィンドウで iOS プラットフォームを選択していることを確認してください。
  3. プライバシーマニフェストファイルで、承認される理由に該当する、理由が求められる API または C# .Net Framework API の使用を宣言します。
  4. ネイティブコードまたはネイティブライブラリが Appleによって分類された 何らかのデータ型を収集しているかどうかを確認し、それらのデータ型が該当することをプライバシーマニフェストファイル内で宣言します。

Unity の C# .Net Framework API

以下の表は C# .Net API の一覧で、これらは File timestamp API という名の理由が求められる API カテゴリを呼び出します。アプリケーション、SDK、パッケージ、またはプラグインコードがこのリストの API を呼び出す場合は、理由が求められる API に関する Apple のドキュメントで指定されているガイドラインに従って、プライバシーマニフェストファイルでそれらの使用理由を宣言してください。

ノート: 以下のリストは Unity バージョン 2021.3 LTS 以降でのみ検証されています。

ファイル API ディレクトリ API
fileInfo.CreationTime; directoryInfo.CreationTime;
fileInfo.LastAccessTime; directoryInfo.LastAccessTime;
fileInfo.LastWriteTime; directoryInfo.LastWriteTime;
fileInfo.CreationTimeUtc; directoryInfo.CreationTimeUtc;
fileInfo.LastAccessTimeUtc; directoryInfo.LastAccessTimeUtc;
fileInfo.LastWriteTimeUtc; directoryInfo.LastWriteTimeUtc;
File.GetCreationTime(filePath); Directory.GetCreationTime(filePath);
File.GetLastAccessTime(filePath); Directory.GetLastAccessTime(filePath);
File.GetLastWriteTime(filePath); Directory.GetLastWriteTime(filePath);
File.GetCreationTimeUtc(filePath); Directory.GetCreationTimeUtc(filePath);
File.GetLastAccessTimeUtc(filePath); Directory.GetLastAccessTimeUtc(filePath);
File.GetLastWriteTimeUtc(filePath); Directory.GetLastWriteTimeUtc(filePath);

Unity Engine プライバシーマニフェスト

以下の表は、理由が求められる API カテゴリを呼び出す Unity Engine API のリストを示しています。

カテゴリ 理由 説明 
File timestamp APIs 0A2A.1 C# timestamp API によって使用されます
File timestamp APIs C617.1 ファイルの確認のために使用されます
User defaults APIs CA92.1 PlayerPrefs API によって使用されます
System boot time APIs 35F9.1 さまざまなイベント間の時間を計算するために使用されます
Disk space APIs E174.1 AssetBundle のディスクスペースを確認するために使用されます
App slicing
iOS デバイスのトラブルシューティング