記事


あなたのアプリまたはサードパーティの SDK にプライバシー マニフェストを追加する


あなたが収集したデータと、あなたのアプリまたはサードパーティの SDK で使用する API の必要な理由を報告します。





概観


プライバシーマニフェストは、あなたのターゲットのリソースに追加するプロパティリストファイル (PrivacyInfo.xcprivacy) です。プライバシーマニフェストは、アプリまたはサードパーティ SDK のプライバシー慣行を記述します。Xcode を使用してあなたのアプリまたはサードパーティ SDK にプライバシーマニフェストを追加するには、プライバシーマニフェストファイル を参照してください。あなたのアプリ内のすべてのプライバシーマニフェストファイルは有効で、予期されるキーと値のみが含まれていなければなりません。詳細については、プライバシーマニフェストでのデータ使用の記述 の"あなたのアプリまたはサードパーティ SDK が収集するデータの説明" を参照してください。


重要

App Store Connect では、無効なプライバシーマニフェストファイルを含むアプリの提出は拒否されます。予期しないキーや値を持つプライバシーマニフェストファイルを含むアプリを App Store Connect にアップロードすると、アプリバンドル内の無効なファイルの名前とパスが記載されたメールがあなたに届きます。無効なファイルがサードパーティの SDK からのものである場合は、その開発者に連絡して、有効なプライバシーマニフェストを含む SDK の更新されたバージョンを入手してください。無効なプライバシーマニフェストのトラブルシューティングについては、TN3181:無効なプライバシーマニフェストのデバッグ (TN3181: Debugging an invalid privacy manifest) を参照してください。2025 年 2 月 12 日以降、App Store Connect で審査のために提出するアプリには、一般的に使用されている一定数のサードパーティ SDK の有効なプライバシーマニフェストファイルが含まれていなければなりません。詳細については、近日中に適用されるサードパーティSDKに関する要件 を参照してください。

Xcode であなたのアプリまたはサードパーティの SDK をビルドするターゲットにプライバシーマニフェストを追加すると、Xcode は製品の型とターゲットプラットフォームに基づいて、このファイルを適切な場所に自動的に配置します。あなたの製品のビルドに Xcode を使用しない場合は、以下の情報を使用してプライバシーマニフェストを適切な場所に配置してください。Xcode を使用する場合でも、この情報はあなたの製品内のプライバシーマニフェストの場所を確認するのに役立つでしょう。


アプリにプライバシーマニフェストを追加する


iOS、iPadOS、tvOS、visionOS、または watchOS アプリをビルドする場合は、プライバシーマニフェストをあなたのアプリのバンドルのルートに配置します。以下の例は、Sample という iOS アプリのバンドル構造を示しています。このアプリでは、Sample.app/PrivacyInfo.xcprivacyPrivacyInfo.xcprivacy がリストされています。


  1. Sample.app/
  2. Info.plist
  3. Sample
  4. PrivacyInfo.xcprivacy
  5. ...

macOS および Mac Catalyst アプリの場合、プライバシーマニフェストファイルをアプリのバンドル内の Contents/Resources/ に配置して下さい。以下の例は、MacSample という macOS アプリのバンドル構造を示しています。このアプリでは、PrivacyInfo.xcprivacyMacSample.app/Contents/Resources/PrivacyInfo.xcprivacy にリストされています。


  1. MacSample.app/
  2. Contents/
  3. Info.plist
  4. MacOS/
  5. MacSample
  6. Resources/
  7. PrivacyInfo.xcprivacy
  8. ...

フレームワークにプライバシーマニフェストを追加


あなたのフレームワーク内でプライバシーマニフェストを配置する場所は、プラットフォームによって異なります。iOS、iPadOS、tvOS、visionOS、または watchOS フレームワークの場合、プライバシーマニフェストをあなたのフレームワークのバンドルのルートに配置して下さい。以下の例は、SampleFramework という iOS フレームワークのレイアウトを示しています。このフレームワークでは、PrivacyInfo.xcprivacySampleFramework.framework/PrivacyInfo.xcprivacy にリストされています。


  1. SampleFramework.framework/
  2. Info.plist
  3. SampleFramework
  4. PrivacyInfo.xcprivacy
  5. ...

macOS および Mac Catalyst フレームワークの場合、プライバシーマニフェストファイルをフレームワークのバンドル内の Versions/A/Resources/ に配置して下さい。以下の例は、単一のバージョン (A) をサポートし、プライバシーマニフェストファイルを含む、MacSampleFramework という名前の macOS フレームワークのレイアウトを示しています。バンドル構造には、MacSampleFramework.framework/Versions/A/Resources/PrivacyInfo.xcprivacyPrivacyInfo.xcprivacy がリストされています。


  1. MacSampleFramework.framework/
  2. MacSampleFramework -> Versions/Current/MacSampleFramework
  3. Resources -> Versions/Current/Resources
  4. Versions/
  5. Current -> A
  6. A/
  7. MacSampleFramework
  8. Resources/
  9. Info.plist
  10. PrivacyInfo.xcprivacy
  11. ...
  12. ...

Swift パッケージにプライバシーマニフェストを追加


Swift パッケージのリソースには、そのプライバシーマニフェストファイルを含めることができます。Swift パッケージにリソースファイルを追加する方法の詳細については、Swift パッケージにリソースをバンドル (Bundling resources with a Swift package) を参照してください。ソースファイルは、パッケージの Sources ディレクトリのサブフォルダーにあり、そのサブフォルダーの名前は、ソースファイルが属するターゲットと同じ名前です。これがリソースのデフォルトの場所です。あなたのリソースファイルがデフォルトの場所にある場合は、プライバシーマニフェストをその場所に追加します。以下の例は、SomeLibrary ターゲットを宣言するパッケージマニフェストを示しています。以下に示すように、別の場所を指定しない場合は、プライバシーマニフェストファイルを Sources/SomeLibrary に配置して下さい。


  1. SamplePackage/
  2. README.md
  3. Package.swift
  4. Sources/
  5. SomeLibrary/
  6. SomeLibrary.swift
  7. Product.swift
  8. PrivacyInfo.xcprivacy
  9. ...
  10. Tests/
  11. ...

あるいは、あなたのリソースファイルがあなたのソースファイルとは別のサブフォルダーにある場合は、プライバシーマニフェストをこのディレクトリに追加して下さい。すべてのあなたのリソースファイルを Resources という名前のディレクトリに配置する場合は、プライバシーマニフェストファイルを Sources/SomeLibrary/Resources に配置して下さい。


  1. SamplePackage/
  2. README.md
  3. Package.swift
  4. Sources/
  5. SomeLibrary/
  6. SomeLibrary.swift
  7. Product.swift
  8. ...
  9. Resources/
  10. PrivacyInfo.xcprivacy
  11. ...
  12. Tests/
  13. ...

Xcode は、デフォルトではプライバシーマニフェストファイルをリソースとして認識しません。マニフェストファイルをあなたのパッケージに追加した後、ファイルまたはそれを含むディレクトリをパッケージリソースとして明示的に宣言して下さい。以下の例では、パッケージマニフェストは PrivacyInfo.xcprivacy を明示的なリソースとして宣言しています。


  1. targets: [
  2. .target(
  3. name: "SomeLibrary",
  4. resources: [
  5. .process("PrivacyInfo.xcprivacy")]
  6. ),
  7. ]

この例では、パッケージマニフェストには Resources ディレクトリが明示的なリソースとしてリストされています。


  1. targets: [
  2. .target(
  3. name: "SomeLibrary",
  4. resources: [
  5. .process("Resources")]
  6. ),
  7. ]

バイナリフレームワークを Swift パッケージとして配布する場合は、XCFramework バンドルに、あなたがサポートする各プラットフォームのプライバシーマニフェストが含まれていることを確認してください。詳細については、バイナリフレームワークを Swift パッケージとして配布する ( Distributing binary frameworks as Swift packages) を参照してください。


プライバシーマニフェストと共に静的ライブラリを配布


静的ライブラリは、.a ファイル拡張子を持つオブジェクトファイルのアーカイブです。プライバシーマニフェストなどのリソースはサポートされていません。現在 SDK を静的ライブラリとしてあなたが配布していて、Xcode でプライバシーマニフェストを含めるように更新する場合は、静的ライブラリのすべてのソースファイルとリソースを含む新しい静的フレームワークターゲットを作成し、プライバシーマニフェストをターゲットのリソースに追加して下さい。静的フレームワークの作成方法の詳細については、静的フレームワークの作成 (Creating a static framework) を参照してください。


あなたの静的ライブラリのビルドに Xcode を使用しない場合は、静的ライブラリの静的フレームワークバンドルを手動で作成し、プライバシーマニフェストをリソースとしてバンドルに追加して下さい。フレームワークバンドルの構造の詳細については、バンドルへのコンテンツの配置 を参照してください。静的フレームワーク内のプライバシーマニフェストの場所を特定するには、フレームワークにプライバシーマニフェストを追加 を参照してください。


XCFramework バンドルに必要なプライバシーマニフェストが含まれていることを確認


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 が作成されます。


  1. xcodebuild -create-xcframework
  2. -archive MyArchives/SampleFramework-iOS.xcarchive -framework SampleFramework.framework
  3. -archive MyArchives/SampleFramework-macOS.xcarchive -framework SampleFramework.framework
  4. -archive MyArchives/SampleFramework-iOS_Simulator.xcarchive -framework SampleFramework.framework
  5. -archive MyArchives/SampleFramework-Mac_Catalyst.xcarchive -framework SampleFramework.framework
  6. -output xcframeworks/SampleFramework.xcframework

SampleFramework の各バリアントには、以下に示すように、適切な場所にプライバシーマニフェストファイルが含まれています。


  1. SampleFramework.xcframework/
  2. Info.plist
  3. ios-arm64/
  4. dSYMs/
  5. ...
  6. SampleFramework.framework/
  7. Info.plist
  8. SampleFramework
  9. PrivacyInfo.xcprivacy
  10. ...
  11. macos-arm64_x86_64/
  12. dSYMs/
  13. ...
  14. SampleFramework.framework/
  15. SampleFramework -> Versions/Current/SampleFramework
  16. Resources -> Versions/Current/Resources
  17. Versions/
  18. Current -> A
  19. A/
  20. SampleFramework
  21. Resources/
  22. Info.plist
  23. PrivacyInfo.xcprivacy
  24. ...
  25. ...
  26. ios-arm64_x86_64-simulator/
  27. dSYMs/
  28. ...
  29. SampleFramework.framework/
  30. Info.plist
  31. SampleFramework
  32. PrivacyInfo.xcprivacy
  33. ...
  34. ios-arm64_x86_64-maccatalyst/
  35. dSYMs/
  36. ...
  37. SampleFramework.framework/
  38. SampleFramework -> Versions/Current/SampleFramework
  39. Resources -> Versions/Current/Resources
  40. Versions/
  41. Current -> A
  42. A/
  43. SampleFramework
  44. Resources/
  45. Info.plist
  46. PrivacyInfo.xcprivacy
  47. ...
  48. ...

フレームワーク内のプライバシーマニフェストの場所を特定するには、フレームワークにプライバシーマニフェストを追加 を参照してください。プライバシーマニフェストを含む静的ライブラリを配布するには、プライバシーマニフェストと共に静的ライブラリを配布 を参照してください。


あなたのアプリアーカイブで無効なプライバシーマニフェストを見つける


あなたのアプリアーカイブで無効なプライバシーマニフェストを見つけるには:


  1. Apple から受信したメールからファイルの場所を確認します。

  2. Xcode で、[Window(ウィンドウ)] > [Organizer(オーガナイザ)] を選択し、[Archives(アーカイブ)] をクリックします。

  3. オーガナイザであなたのアプリアーカイブを Control + クリックし、コンテキスト メニューから [Finder で表示] を選択します。Xcode によって Finder が開き、アーカイブの場所が表示されます。

  4. Finder で、あなたのアーカイブを Control + クリックし、[Show Package Contents (パッケージの内容を表示)] を選択して開きます。

  5. あなたのアーカイブ内のプライバシーマニフェストの場所に移動します。

  6. 無効なプライバシーマニフェストの管理


    サードパーティの SDK 開発者から有効なプライバシーマニフェストを取得できず、あなたのアプリを提出する必要がある場合は、あなたのアプリアーカイブ内の無効なプライバシーマニフェストを見つけて削除し、Xcode を使用してあなたのアーカイブを提出して下さい。または、あなたのアプリ内の無効なプライバシーマニフェストを見つけて、ファイル内の検証の問題を修正し、Xcode を使用してあなたのアーカイブを提出して下さい。無効なプライバシーマニフェストのトラブルシューティングについては、TN3181: 無効なプライバシーマニフェストのデバッグ (TN3181: Debugging an invalid privacy manifest) を参照してください。


    重要

    無効なプライバシーマニフェストを削除または変更すると、アーカイブされたアプリの署名が壊れます。アーカイブオーガナイザーからあなたのアーカイブを配布する時は、Xcode によってあなたのアプリに再署名されます。詳細については、ベータテストおよびリリース用にあなたのアプリを配布する (Distributing your app for beta testing and releases)の「配布方法を選択する」を参照してください。




    以下も見よ


    必須


    プライバシーマニフェストでデータの使用を説明する

    あなたのアプリまたはサードパーティの SDK によって収集されたデータを宣言します。


    必要な理由 API 使用の説明

    対象となる API の使用がポリシーと一致していることを確認してください。


    アプリのプライバシー構成

    プライバシーマニフェストファイル内のルートオブジェクトを表すデータ構造。














    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ