プライバシーマニフェスト
背景
WWDC23で、Appleは新しいプライバシーマニフェストのポリシーを発表しました。2024年春以降、新規AppまたはAppのアップデートを提出する際に、App Store上のAppでよく使われるサードパーティSDKを追加している場合は、そのSDKのプライバシーマニフェストを含める必要があります。
収集SDKの対応方法
iOS収集SDKは、v3.0.2-beta.2からプライバシーマニフェストを提供しています。
iOSでの統合
1. Cocoapodsでの統合
SDKを導入するだけで、プライバシーマニフェストの内容が自動的に含まれます。手動で処理する必要はありません。
pod 'ThinkingSDK', '>= 3.0.2'
2. Frameworkでの統合
iOS収集SDKの.xcframeworkライブラリには、プライバシーマニフェストファイルがすでに追加されていますが、署名はされていません。署名が必要な場合は、適切な証明書を使ってご自身で署名してください。
- iOS SDKをダウンロードして解凍します
ThinkingSDK.xcframework、ThinkingDataCore.xcframeworkをXCode Project Workspaceのプロジェクトにドラッグします- Targetsを開き、Build Settingsメニューの
Other linker flagsオプションに-ObjCを追加します
ゲームエンジンでの統合
プライバシーマニフェストファイルを手動で処理する
-
ゲームエンジンのエディターでXCodeプロジェクトを自動的にビルドします
-
このXCodeプロジェクトに、ご自身のプロジェクト用のプライバシーマニフェストファイルを作成します。Appleのプライバシーマニフェスト仕様を参照してください
-
ThinkingData収集SDKのプライバシーマニフェストファイルをダウンロードします(付録を参照)
-
ThinkingData収集SDKのプライバシーマニフェストファイルと、プロジェクトのプライバシーマニフェストのデータを手動で統合します
- 付録の
NSPrivacyCollectedDataTypesの下にあるすべてのitemを、AppプロジェクトのPrivacyInfo.xcprivacyファイルの対応するkeyの下にそれぞれコピーします NSPrivacyAccessedAPITypesの下にあるすべてのitemを、AppプロジェクトのPrivacyInfo.xcprivacyファイルの対応するkeyの下にそれぞれコピーします
- 付録の
クロスプラットフォームフレームワークでの統合
プライバシーマニフェストファイルを手動で処理する
-
クロスプラットフォームフレームワーク(例:Flutter、RN)のエディターでXCodeプロジェクトを自動的にビルドします
-
このXCodeプロジェクトに、ご自身のプロジェクト用のプライバシーマニフェストファイルを作成します。Appleのプライバシーマニフェスト仕様を参照してください
-
ThinkingData収集SDKのプライバシーマニフェストファイルをダウンロードします(付録を参照)
-
ThinkingData収集SDKのプライバシーマニフェストファイルと、プロジェクトのプライバシーマニフェストのデータを手動で統合します
- 付録の
NSPrivacyCollectedDataTypesの下にあるすべてのitemを、AppプロジェクトのPrivacyInfo.xcprivacyファイルの対応するkeyの下にそれぞれコピーします NSPrivacyAccessedAPITypesの下にあるすべてのitemを、AppプロジェクトのPrivacyInfo.xcprivacyファイルの対応するkeyの下にそれぞれコピーします
- 付録の
付録
ThinkingData収集SDKのプライバシーマニフェスト。ファイル名:PrivacyInfo.xcprivacy
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypes</key>
<array>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeProductInteraction</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeCrashData</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypePerformanceData</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeCoarseLocation</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeUserID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
<dict>
<key>NSPrivacyCollectedDataType</key>
<string>NSPrivacyCollectedDataTypeDeviceID</string>
<key>NSPrivacyCollectedDataTypeLinked</key>
<false/>
<key>NSPrivacyCollectedDataTypeTracking</key>
<false/>
<key>NSPrivacyCollectedDataTypePurposes</key>
<array>
<string>NSPrivacyCollectedDataTypePurposeAnalytics</string>
</array>
</dict>
</array>
<key>NSPrivacyTrackingDomains</key>
<array/>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>1C8F.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>E174.1</string>
<string>7D9E.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>35F9.1</string>
</array>
</dict>
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>C617.1</string>
</array>
</dict>
</array>
</dict>
</plist>

