🛠️

自作Swift PackageライブラリのPrivacy Manifest対応

2024/03/07に公開
  1. PrivacyInfo.xcprivacyファイルを作ってSources/LibraryName/配下に置く
  2. PrivacyInfo.xcprivacytargetに紐づける
    Package.swift
    targets: [
         .target(
             name: "LibraryName",
             resources: [.copy("PrivacyInfo.xcprivacy")]
         )
    ]
    
  3. PrivacyInfo.xcprivacyを編集する

1. なんの情報も取得していないし、トラッキングもしない場合

何もしなくてOKらしいです。

https://forums.developer.apple.com/forums/thread/746481

元々書いていた内容


PrivacyInfo.xcprivacyをXcodeで見たとき

PrivacyInfo.xcprivacy
<dict>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array/>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    <key>NSPrivacyTracking</key>
    <false/>
</dict>

2. UserDefaultsだけ使う場合


PrivacyInfo.xcprivacyをXcodeで見たとき

PrivacyInfo.xcprivacy
<dict>
    <key>NSPrivacyCollectedDataTypes</key>
    <array/>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
    </array>
    <key>NSPrivacyTrackingDomains</key>
    <array/>
    <key>NSPrivacyTracking</key>
    <false/>
</dict>

Privacy Accessed API Reasonsには複数理由があるので用途に合ったものをここから選ぶ

SwiftUIのAppStorageUserDefaultsのPropertyWrapperなので、AppStorageを使っている場合もこの対応が必要だと思います。

Discussion