苹果隐私清单和所需原因 API 怎么报
隐私标签是你在网站上填的表,隐私清单是打进安装包里的文件。两份都要和 App 真实调用的 API 一致。
01清单里报什么
- 应用自己用到的所需原因 API,例如 UserDefaults、文件时间戳、磁盘空间、系统启动时间。每一类选一个真实的原因。
- 是否用于追踪。用于追踪时,列出参与追踪的域名。
- 你收集的数据类型。要和 App Store Connect 里的隐私标签一致。
- 合并进来的 SDK。每个 SDK 应自带隐私清单,Xcode 会在归档时汇总。
原因代码以苹果当前文档为准。不要选一个看起来能用、但和你的功能对不上的理由。
02和隐私标签一起对
| 位置 | 谁来填 | 对不上的结果 |
|---|---|---|
| PrivacyInfo.xcprivacy | 工程里,随包上传 | 上传或审核时提示缺少清单或原因 |
| App Store 隐私标签 | Connect 网页 | 标签和二进制不一致时被询问 |
| 隐私政策网址 | 你的网站 | 用户和审核员看到的收集范围和前两份不同 |
三份一起改。只改标签、不改清单,下一次归档还会报。
03第三方 SDK 怎么处理
- 把还在工程里的 SDK 列出来,包括广告、统计、崩溃、登录。
- 升到作者已经附带隐私清单的版本。不要为了省事锁在一个不再更新的旧版。
- 归档后看生成的隐私报告,确认没有「缺少清单」的项。
- 某个 SDK 你已经不用了,就从工程移除,而不是留着但在标签里写不收集。
04所需原因 API 不要乱选
UserDefaults 用来存设置,就选存设置这一类原因。不要因为示例代码里有一个原因,就抄到磁盘空间或启动时间上。
没有调用的 API 不要声明。声明了却找不到调用,审核一样会问。
05上传前看一遍报告
- 用当前要提交的配置归档,不要用调试包看报告。
- 打开隐私报告,所需原因 API、追踪域名、收集类型各看一遍。
- 和 Connect 里已经发布的隐私标签对比,有新增收集就先改标签再提交。
- TestFlight 外部测试同样会看这些声明,不要等正式审核才补。
问常见问题
旧应用不更新,也要补隐私清单吗?
不提交新版本就不会因这次上传被检查。一旦发新版本,就按当前要求带上清单。
只有自己写的代码,没有 SDK,还要清单吗?
要。应用目标本身也需要隐私清单,哪怕收集类型是空、追踪为否。用了所需原因 API 就必须写原因。
清单和国内隐私政策是同一个文件吗?
不是。清单是苹果要求放进包里的声明。给用户看的仍是隐私政策网页。