# Apple 隐私清单

> Add the privacy manifest file required for iOS application submission to the Apple App Store.

要在 App Store 中发布适用于 iOS、iPadOS、tvOS 和 visionOS 平台的应用程序，您必须根据 [Apple 隐私政策](https://www.apple.com/legal/privacy/en-ww/)在应用程序中包含[隐私清单文件](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files)。

> **Note:**
>
> **注意**：如需了解如何创建要包含在应用程序中的隐私清单文件，请参阅 [Apple 隐私清单政策要求](https://docs.unity3d.com/Manual/apple-privacy-manifest-policy.html)。[PrivacyInfo.xcprivacy](#privacyinfo.xcprivacy) 清单文件概述了所需的信息，确保透明度符合用户隐私惯例。此文件列出了由 Unity 应用程序、第三方 SDK、包和插件收集的[数据类型](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests)，以及使用某些[需要声明原因的 API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api)（Apple 文档）类别的原因。Apple 还要求将某些域声明为[追踪](https://developer.apple.com/app-store/user-privacy-and-data-use/)（Apple 文档）；除非用户同意，否则这些域可能会被屏蔽。

> **Warning:**
>
> 如果您的隐私清单未声明您或第三方 SDK 使用了需要声明原因的 API，App Store 可能会拒绝您的应用程序。在 Apple 文档中阅读有关[需要声明原因的 API](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api) 的更多信息。

###### 注意：##note

* 在某些司法管辖区，语音数据可能被视为生物特征数据。
* 仅当使用不受支持的 Vivox SDK 版本时，才会收集设备 ID (IDFV)。
* 其他诊断数据是指基于某种算法（此算法由用户或设备 ID iOS API 调用哈希进行驱动）的分析数据。
* 其他数据类型是指应用内语音和文本通信。

对于 iOS 和 visionOS 构建，Unity 引擎和 Vivox 的构建过程会负责将隐私清单添加到 Xcode 项目中。对于 macOS，在将应用发布到 App Store 之前，您必须将清单文件包含在项目中。您可以在 Unity 项目中选择 **Packages（包）> Vivox > Plugins（插件）> x86\_64 > PrivacyInfo.xcprivacy** 来查找 PrivacyInfo.xcprivacy 文件。

如需了解开发 Unity 游戏时的隐私清单文件的更多信息，请参阅 [Unity 官方论坛的此页面](https://forum.unity.com/threads/apple-privacy-manifest-updates-for-unity-engine.1529026/#post-9688592)。

## PrivacyInfo.xcprivacy##privacyinfo.xcprivacy

以下代码示例包含 Vivox SDK 的 PrivacyInfo.xcprivacy 清单。

```xml
<?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>NSPrivacyCollectedDataTypeOtherDataTypes</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeOtherDiagnosticData</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>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeProductInteraction</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeDeviceID</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeUserID</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeAudioData</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeOther</string>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeSensitiveInfo</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeOther</string>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
		<dict>
			<key>NSPrivacyCollectedDataType</key>
			<string>NSPrivacyCollectedDataTypeCoarseLocation</string>
			<key>NSPrivacyCollectedDataTypeLinked</key>
			<true/>
			<key>NSPrivacyCollectedDataTypeTracking</key>
			<false/>
			<key>NSPrivacyCollectedDataTypePurposes</key>
			<array>
				<string>NSPrivacyCollectedDataTypePurposeAppFunctionality</string>
			</array>
		</dict>
	</array>
</dict>
</plist>
```
