隐私清单检查器
粘贴你的 PrivacyInfo.xcprivacy。它只在本页面内读取,不会发送到任何地方。
试试示例:
功能
隐私清单是一个名为 PrivacyInfo.xcprivacy 的小文件,放在你的应用里,或你随应用一起发布的 SDK 里。它说明应用是否追踪用户、收集哪些类型的数据以及原因,还有应用为什么调用 Apple 所说可能被用来识别设备指纹的少数 API,比如文件日期、磁盘空间和用户默认设置。Xcode 会读取应用中的每个清单来生成隐私报告。这个工具读取你粘贴的文件,并对照 Apple 自己的列表检查每个值,这样拼写错误、用错类别的原因或缺少的用途,会在 App Store Connect 或隐私报告报错之前就暴露出来。
在 Mac 上
Apple 要求的是两件不同的事。应用收集的数据,在所有平台(包括 Mac)上都要写进清单。必需原因 API 则在 iOS、iPadOS、tvOS、visionOS 和 watchOS 上要求。所以仅限 Mac 的应用不必列出它对 UserDefaults 的使用,但同时为 iPhone 或 iPad 构建的目标就要列出,在 Mac 上列出也没有坏处。
如何查看这个文件
plutil -lint PrivacyInfo.xcprivacy plutil -convert xml1 -o - PrivacyInfo.xcprivacy
第一个命令检查文件是否有效,第二个把它输出为可以粘贴到这里的 XML。在 Xcode 中,按住 Control 键点按文件,选择 Open As,再选 Source Code。要查看已完成应用中的所有清单,先归档应用,然后在 Organizer 中按住 Control 键点按该归档,选择 Generate Privacy Report。
每种结果的含义
| 标记 | 含义 |
|---|---|
| 修复 | 有值缺失,或者不是 Apple 列出的值,比如编造的数据类型,或来自其他类别的原因代码。 |
| 外观 | 能读取,但有两个答案互相矛盾,或者用了只适用于 SDK、键盘或健康研究的原因。 |
| 正常 | 这是 Apple 列出的值,并且用在了正确的位置。 |
| 注意 | 值得了解的情况,比如它的列表里没有的某个键。 |
来源:Apple Developer,Privacy manifest files、Describing use of required reason API、Describing data use in privacy manifests 和 NSPrivacyAccessedAPIType,均于2026年11月11日阅读。
运作方式
这是在本页面运行的几条简单规则。它读取清单的 XML,把每个值与 Apple 文档中的 5 个 API 类别、它们的原因代码、35 种数据类型和 6 种用途进行比较。它看不到你的代码,所以无法判断应用是否真的调用了你漏掉的 API,也无法判断某个原因是否属实。请把 Apple 给出的每条原因读一遍,并与应用的实际行为对上。你粘贴的内容不会被保存或发送。
问题
什么是隐私清单?
放在应用或 SDK 里、名为 PrivacyInfo.xcprivacy 的属性列表。它记录应用是否追踪、收集哪些数据及原因,以及为什么使用 Apple 列出的某些 API。
Mac 应用需要隐私清单吗?
Apple 要求所有平台(包括 Mac)都在其中记录所收集的数据。必需原因 API 则只在 iOS、iPadOS、tvOS、visionOS 和 watchOS 上要求,所以仅限 Mac 的应用不需要列出。
CA92.1 是什么意思?
这是用户默认设置的原因,用于读写只有你自己的应用能看到的设置。1C8F.1 用于在 App Group 内共享的设置。
文件时间戳该用哪个原因?
应用自己的容器、App Group 或 CloudKit 容器中的文件用 C617.1,用户选择交给应用的文件用 3B52.1,向用户显示文件日期用 DDA9.1。
我粘贴的内容会被发送到别处吗?
不会。文字只在本页面读取,不会发送或保存。