版本:Unity 6 (6000.0)
语言 : 英语
应用切片
Linux

苹果的隐私清单策略要求

苹果正在推出一个隐私策略,要求在针对 App Store 上的 iOS、iPadOS、macOS、tvOS 和 visionOS 平台的新应用程序和更新应用程序中包含隐私清单文件

隐私清单文件 (PrivacyInfo.xcprivacy) 列出了您的 Unity 应用程序或任何第三方 SDK、包和插件在 Unity 之外创建的一组代码,可在 Unity 中创建功能。在 Unity 中可以使用两种类型的插件:托管插件(使用 Visual Studio 等工具创建的托管 .NET 程序集)和原生插件(特定于平台的原生代码库)。 更多信息
参见 术语表
收集的数据类型,以及使用特定必要理由 API 类别的理由。

重要: 如果您或第三方 SDK 使用的必要理由 API 未在隐私清单中声明,您的应用程序可能会被 App Store 拒绝。针对 macOS 平台的应用程序不需要声明使用必要理由 API。对于 macOS 应用程序,仅当您计划在 App Store 上发布应用程序时,隐私清单要求才适用。有关更多信息,请访问苹果关于必要理由 API 的文档。

为您的 Unity 应用程序准备苹果的隐私清单策略

您必须审查您的原生代码、C# 代码和数据收集和跟踪实践,以了解苹果的隐私清单策略是否适用于您。请遵循以下指南,确定您是否需要在您的产品中包含隐私清单文件。

  • 如果您的应用程序包含多个第三方 SDK、包和插件,则这些第三方组件(如果适用)必须分别单独提供自己的隐私清单文件。注意:但是,确保这些第三方组件的所有者包含隐私清单文件是您的责任。Unity 对任何第三方隐私清单及其数据收集和跟踪实践概不负责。

  • 如果您的应用程序包含 Unity 框架中对C# .Net 框架 API 的实现,这些实现调用了苹果必要理由 API 类别中列出的某些 API,则您必须评估产品对 API 的使用情况。有关评估数据收集和跟踪实践的组成部分的详细信息,请参阅苹果关于隐私清单文件 的文档。注意:评估您对每个 API 的使用情况并声明使用这些 API 的适用理由是您的责任。

根据您使用的是Unity 开发应用程序还是提供您的SDK、包和插件 与 Unity 应用程序一起使用,提供隐私清单文件的具体要求可能会有所不同。

注意:上述指南仅供参考。在为您的项目创建隐私清单之前,请务必查看苹果关于隐私清单文件 的文档。

Unity 应用程序的隐私清单

如果您使用 Unity 开发应用程序,请考虑以下步骤。

  1. 评估您的原生应用程序代码是否使用以下任何 API。
  2. 如果您满足步骤 1 中的一个或两个条件,请在 Xcode 中创建隐私清单文件 并将其保存在项目的Assets/Plugins 文件夹中。

  3. 在隐私清单文件中,声明使用必要理由 API 或 C# .Net 框架 API 的批准理由(如果适用)。

    重要:如果您未声明使用 API 的理由,您的应用程序可能会被 App Store 拒绝。针对 macOS 平台的应用程序不需要声明使用必要理由 API。

  4. 验证您的原生应用程序代码是否收集了苹果分类 的任何类型的数据,并在隐私清单文件中声明这些数据类型(如果适用)。您应用程序中使用的任何第三方 SDK、包和插件必须包含其自己的单独清单文件,以声明数据收集以及使用任何必要理由 API(附带批准理由)。

说明

  • 您有责任检查 Unity 框架中隐私清单的准确性,以及您的 Unity 项目中包含的任何第三方组件是否需要在您的隐私清单中进行任何声明。建议您搜索这些第三方组件以查找任何有关隐私清单声明的引用。

  • 如果您使用 Unity 作为库开发应用程序,请检查您的原生应用程序代码是否在 Unity 项目之外收集了以下任何信息。

第三方 SDK、包和插件的隐私清单

如果您是插件、包或 SDK 所有者,并且您提供要在 Unity 项目中作为 .framework 包含的服务或包,请遵循以下步骤。

  1. 评估您的原生代码或原生库是否包含以下任何类别信息。
  2. 在您框架的隐私清单文件中声明正在收集的数据类型以及使用必要理由 API 的批准理由(如果适用)。

如果您的产品不在 Unity 项目中作为 .framework 使用,请考虑将其作为 .framework 提供。如果您无法做到,请遵循以下步骤。

  1. 评估您的原生代码或原生库是否使用以下 API。
  2. 如果使用了一个或两个 API 类别,请在 Xcode 中创建隐私清单 文件并将其保存在您的源代码中。确保在插件检查器一个 Unity 窗口,显示有关当前选定游戏对象、资产或项目设置的信息,允许您检查和编辑值。 更多信息
    参见 术语表
    窗口中选择 iOS 平台。
  3. 在隐私清单文件中,声明使用必要理由 API 或 C# .Net 框架 API(如果适用),附带批准理由。
  4. 验证您的原生代码或原生库是否收集了苹果分类 的任何类型的数据,并在隐私清单文件中声明这些数据类型(如果适用)。

Unity 中的 C# .Net 框架 API

下表列出了调用名为文件时间戳 API 的必要理由 API 类别的 C# .Net API。如果您的应用程序、SDK、包或插件代码调用了此列表中的任何 API,请根据苹果关于必要理由 API 的文档中指定的指南,在您的隐私清单文件中声明使用这些 API 的理由。

注意:以下列表仅针对 Unity 版本 2021.3 LTS 及更高版本验证。

文件 API 目录 API
fileInfo.CreationTime; directoryInfo.CreationTime;
fileInfo.LastAccessTime; directoryInfo.LastAccessTime;
fileInfo.LastWriteTime; directoryInfo.LastWriteTime;
fileInfo.CreationTimeUtc; directoryInfo.CreationTimeUtc;
fileInfo.LastAccessTimeUtc; directoryInfo.LastAccessTimeUtc;
fileInfo.LastWriteTimeUtc; directoryInfo.LastWriteTimeUtc;
File.GetCreationTime(filePath); Directory.GetCreationTime(filePath);
File.GetLastAccessTime(filePath); Directory.GetLastAccessTime(filePath);
File.GetLastWriteTime(filePath); Directory.GetLastWriteTime(filePath);
File.GetCreationTimeUtc(filePath); Directory.GetCreationTimeUtc(filePath);
File.GetLastAccessTimeUtc(filePath); Directory.GetLastAccessTimeUtc(filePath);
File.GetLastWriteTimeUtc(filePath); Directory.GetLastWriteTimeUtc(filePath);

Unity 引擎隐私清单

Unity 引擎调用以下类别中的必要理由 API 并使用列出的理由声明这些类别。

类别 理由 描述
文件时间戳 API 0A2A.1 由 C# 时间戳 API 使用
文件时间戳 API C617.1 用于检查文件
用户默认值 API CA92.1 用于 PlayerPrefs API
系统启动时间 API 35F9.1 用于计算各种事件之间的时间
磁盘空间 API E174.1 用于检查 AssetBundles 的磁盘空间

注意:从 Unity 编辑器版本 2021.3.35f1、2022.3.18f1 和 2023.2.7f1 开始,Unity 引擎会自动在隐私清单文件中包含这些理由。如果您使用的是旧版本的 Unity 编辑器,则必须始终在项目的隐私清单文件中声明这些理由。

应用切片
Linux