XCode 16.2 日本語化計画:
あなたが収集したデータと、あなたのアプリまたはサードパーティの SDK で使用する API の必要な理由を報告します。
プライバシーマニフェストは、あなたのターゲットのリソースに追加するプロパティリストファイル (PrivacyInfo.xcprivacy) です。プライバシーマニフェストは、アプリまたはサードパーティ SDK のプライバシー慣行を記述します。Xcode を使用してあなたのアプリまたはサードパーティ SDK にプライバシーマニフェストを追加するには、プライバシーマニフェストファイル を参照してください。あなたのアプリ内のすべてのプライバシーマニフェストファイルは有効で、予期されるキーと値のみが含まれていなければなりません。詳細については、プライバシーマニフェストでのデータ使用の記述 の"あなたのアプリまたはサードパーティ SDK が収集するデータの説明" を参照してください。
Xcode であなたのアプリまたはサードパーティの SDK をビルドするターゲットにプライバシーマニフェストを追加すると、Xcode は製品の型とターゲットプラットフォームに基づいて、このファイルを適切な場所に自動的に配置します。あなたの製品のビルドに Xcode を使用しない場合は、以下の情報を使用してプライバシーマニフェストを適切な場所に配置してください。Xcode を使用する場合でも、この情報はあなたの製品内のプライバシーマニフェストの場所を確認するのに役立つでしょう。
iOS、iPadOS、tvOS、visionOS、または watchOS アプリをビルドする場合は、プライバシーマニフェストをあなたのアプリのバンドルのルートに配置します。以下の例は、Sample という iOS アプリのバンドル構造を示しています。このアプリでは、Sample.app/PrivacyInfo.xcprivacy に PrivacyInfo.xcprivacy がリストされています。
macOS および Mac Catalyst アプリの場合、プライバシーマニフェストファイルをアプリのバンドル内の Contents/Resources/ に配置して下さい。以下の例は、MacSample という macOS アプリのバンドル構造を示しています。このアプリでは、PrivacyInfo.xcprivacy が MacSample.app/Contents/Resources/PrivacyInfo.xcprivacy にリストされています。
あなたのフレームワーク内でプライバシーマニフェストを配置する場所は、プラットフォームによって異なります。iOS、iPadOS、tvOS、visionOS、または watchOS フレームワークの場合、プライバシーマニフェストをあなたのフレームワークのバンドルのルートに配置して下さい。以下の例は、SampleFramework という iOS フレームワークのレイアウトを示しています。このフレームワークでは、PrivacyInfo.xcprivacy が SampleFramework.framework/PrivacyInfo.xcprivacy にリストされています。
macOS および Mac Catalyst フレームワークの場合、プライバシーマニフェストファイルをフレームワークのバンドル内の Versions/A/Resources/ に配置して下さい。以下の例は、単一のバージョン (A) をサポートし、プライバシーマニフェストファイルを含む、MacSampleFramework という名前の macOS フレームワークのレイアウトを示しています。バンドル構造には、MacSampleFramework.framework/Versions/A/Resources/PrivacyInfo.xcprivacy に PrivacyInfo.xcprivacy がリストされています。
Swift パッケージのリソースには、そのプライバシーマニフェストファイルを含めることができます。Swift パッケージにリソースファイルを追加する方法の詳細については、Swift パッケージにリソースをバンドル (Bundling resources with a Swift package) を参照してください。ソースファイルは、パッケージの Sources ディレクトリのサブフォルダーにあり、そのサブフォルダーの名前は、ソースファイルが属するターゲットと同じ名前です。これがリソースのデフォルトの場所です。あなたのリソースファイルがデフォルトの場所にある場合は、プライバシーマニフェストをその場所に追加します。以下の例は、SomeLibrary ターゲットを宣言するパッケージマニフェストを示しています。以下に示すように、別の場所を指定しない場合は、プライバシーマニフェストファイルを Sources/SomeLibrary に配置して下さい。
あるいは、あなたのリソースファイルがあなたのソースファイルとは別のサブフォルダーにある場合は、プライバシーマニフェストをこのディレクトリに追加して下さい。すべてのあなたのリソースファイルを Resources という名前のディレクトリに配置する場合は、プライバシーマニフェストファイルを Sources/SomeLibrary/Resources に配置して下さい。
Xcode は、デフォルトではプライバシーマニフェストファイルをリソースとして認識しません。マニフェストファイルをあなたのパッケージに追加した後、ファイルまたはそれを含むディレクトリをパッケージリソースとして明示的に宣言して下さい。以下の例では、パッケージマニフェストは PrivacyInfo.xcprivacy を明示的なリソースとして宣言しています。
この例では、パッケージマニフェストには Resources ディレクトリが明示的なリソースとしてリストされています。
バイナリフレームワークを Swift パッケージとして配布する場合は、XCFramework バンドルに、あなたがサポートする各プラットフォームのプライバシーマニフェストが含まれていることを確認してください。詳細については、バイナリフレームワークを Swift パッケージとして配布する ( Distributing binary frameworks as Swift packages) を参照してください。
静的ライブラリは、.a ファイル拡張子を持つオブジェクトファイルのアーカイブです。プライバシーマニフェストなどのリソースはサポートされていません。現在 SDK を静的ライブラリとしてあなたが配布していて、Xcode でプライバシーマニフェストを含めるように更新する場合は、静的ライブラリのすべてのソースファイルとリソースを含む新しい静的フレームワークターゲットを作成し、プライバシーマニフェストをターゲットのリソースに追加して下さい。静的フレームワークの作成方法の詳細については、静的フレームワークの作成 (Creating a static framework) を参照してください。
あなたの静的ライブラリのビルドに Xcode を使用しない場合は、静的ライブラリの静的フレームワークバンドルを手動で作成し、プライバシーマニフェストをリソースとしてバンドルに追加して下さい。フレームワークバンドルの構造の詳細については、バンドルへのコンテンツの配置 を参照してください。静的フレームワーク内のプライバシーマニフェストの場所を特定するには、フレームワークにプライバシーマニフェストを追加 を参照してください。
XCFramework バンドルは、フレームワークまたはライブラリの複数のプラットフォーム固有のバリアントを含めることができるバイナリパッケージです。Swift および C ベースのコードの配布をサポートしています。XCFramework バンドルの作成の詳細については、マルチプラットフォームバイナリフレームワークバンドルの作成 ( Creating a multiplatform binary framework bundle) を参照してください。
プライバシーマニフェストをあなたのフレームワークに追加したら、署名済みの XCFramework バンドルとして配布することを検討してください。あなたのフレームワークで XCFramework バンドルを生成すると、生成されたバンドルには、あなたのフレームワークがサポートする各プラットフォームのプライバシーマニフェストファイルが含まれます。フレームワークプラットフォームによって、マニフェストファイルの場所が決まります。XCFramework バンドルに署名すると、フレームワークを組み込む開発者は、フレームワークの更新に互換性のあるコード署名があるかどうかを確認できます。詳細については、XCFramework のオリジナルの確認 ( Verifying the origin of your XCFrameworks) を参照してください。
アップデート(更新)後、SampleFramework は iOS、iOS シミュレータ、Mac Catalyst、および macOS をサポートします。MyArchives ディレクトリには、SampleFramework の各バリアントのアーカイブが含まれています。ターミナルで以下のコマンドを実行すると、iOS、iOS シミュレータ、Mac Catalyst、および macOS のバリアントを含む XCFramework が作成されます。
SampleFramework の各バリアントには、以下に示すように、適切な場所にプライバシーマニフェストファイルが含まれています。
フレームワーク内のプライバシーマニフェストの場所を特定するには、フレームワークにプライバシーマニフェストを追加 を参照してください。プライバシーマニフェストを含む静的ライブラリを配布するには、プライバシーマニフェストと共に静的ライブラリを配布 を参照してください。
あなたのアプリアーカイブで無効なプライバシーマニフェストを見つけるには:
サードパーティの SDK 開発者から有効なプライバシーマニフェストを取得できず、あなたのアプリを提出する必要がある場合は、あなたのアプリアーカイブ内の無効なプライバシーマニフェストを見つけて削除し、Xcode を使用してあなたのアーカイブを提出して下さい。または、あなたのアプリ内の無効なプライバシーマニフェストを見つけて、ファイル内の検証の問題を修正し、Xcode を使用してあなたのアーカイブを提出して下さい。無効なプライバシーマニフェストのトラブルシューティングについては、TN3181: 無効なプライバシーマニフェストのデバッグ (TN3181: Debugging an invalid privacy manifest) を参照してください。
あなたのアプリまたはサードパーティの SDK によって収集されたデータを宣言します。
対象となる API の使用がポリシーと一致していることを確認してください。
プライバシーマニフェストファイル内のルートオブジェクトを表すデータ構造。