App 隐私详情(App Privacy)是你在 App Store Connect 里填写的一份申报:这个 App 以及它集成的第三方 SDK 收集了哪些数据、用来做什么、是否与用户身份关联、是否用于跟踪。填完之后,这些答案会原样出现在 App Store 商品页的「App 隐私」区块里,所有用户都能看到。
审核团队把它当作一份声明来读,而不是当作宣传文案。如果标签写的是「未收集数据」,而安装包里带着一个把设备标识发出去的广告 SDK,这属于元数据不实(misrepresentation)问题,不是「发布后再修个错别字」那类小事。本文按 2026 年的实际界面把整条链路走一遍:问卷在哪里、数据类别如何映射到用户看到的标签、用途与「是否关联」「是否跟踪」怎么判定、SDK 的隐私清单文件替你填了哪些又没填哪些、哪几种答案是拒审高发区,以及每次加删 SDK 之前应该跑一遍的自检。
一、App Privacy 这一块到底管什么
App Store Connect 里有两件东西经常被混为一谈。第一件是隐私政策链接,在「App 信息」里按语言分别填写,所有 App 都必须有,哪怕一个字段都不收集。第二件是 App 隐私问卷,它生成的是商品页上那三组内容:「用于跟踪你的数据」「与你关联的数据」「未与你关联的数据」。
问卷按 App 维度存在,不按账号,而且会跟着 App 一起走到后续版本。你可以随时修改答案,不需要重新上传安装包——这正是答案容易过期的原因:某个版本换了一个聚合广告 SDK,问卷没有同步改,标签就还停留在去年的描述上。既然标签已经对外发布、被用户当作承诺,那么修改动作应该和发版决策同一天完成,而不是拖到下一个迭代。
二、数据类别,以及最容易理解错的那个定义
苹果把可收集的数据固定分成若干大类:联系信息、健康与健身、财务信息、位置(精确与粗略是两个独立选项)、敏感信息、通讯录、用户内容、浏览历史、搜索历史、标识符、购买记录、使用数据、诊断数据、周边环境。每一类下面还有细分项,例如标识符分为用户 ID 与设备 ID,使用数据分为产品交互、广告数据和其他,诊断数据分为崩溃数据、性能数据和其他。
真正容易错的是「收集」的定义。只有数据离开设备、并且在你或合作方可访问的范围内被保留下来(超出即时响应用户请求所需的时间),才算收集。只在本机处理、用完即弃的数据不算。按这个口径判断:
- 崩溃上报算收集。 日志被传输并保存,即使之后做了聚合。
- 只存在本机的计数器不算。 没有传输,也没有在设备之外留存。
- 广告 SDK 既算收集,通常也算跟踪。 它把标识符、使用数据和诊断数据发给一个你无法控制投放的第三方。
- 纯本机的个性化不算,但它背后支撑的账号数据多半算。
三、用途:一个数据类型可能对应多个勾选项
每个声明收集的数据类型至少要选一个用途。官方列表不长,常见的诱惑是「全都勾上」:第三方广告、开发者自有广告或营销、分析、产品个性化、App 功能、其他用途。正确的做法是只勾选真实发生的,因为每个用途都是一句关于数据流向的断言:
- App 功能:功能运行本身需要,例如登录邮箱、为编辑而上传的照片。
- 分析:衡量 App 被如何使用,包含第三方分析 SDK 的使用。
- 开发者自有广告或营销:你以第一方身份做的推广,包括对自己用户做再营销。
- 第三方广告:只要广告网络(而不是你)拿到了数据,就必须勾选。
- 产品个性化:用收集到的数据做内容或推荐上的定制。
- 其他用途:给那些确实不属于前五类的正当用途,不是「拿不准就勾这个」的收纳箱。
只勾「App 功能」,而某个 SDK 把同一个标识符拿去做广告投放,是我们做资料核查时最常见的错配。问卷不是用来把收集描述到最小的,而是用来把真实情况说清楚的。
四、与你关联 / 未与你关联
每一个声明的数据类型都要回答:这些数据是否与用户身份关联。「关联」指数据可以追到某个身份上——账号、邮箱、长期不变的用户 ID,或者能反查到人的设备标识。「未关联」指收集时不带任何这样的连接:频繁轮换的随机会话号、没有连接键的聚合计数。
两个实操判断方法。第一,如果客户来一封支持邮件,你能不能凭这份数据查到他的记录?能查,就是关联。第二,合作方手里有没有一个键,让他们能跨你的 App 和他们的 App 认出同一个用户?如果有,即使你自己的库里存的是「匿名」记录,在他们手里依然是关联的,而且很可能同时构成跟踪。
苹果不按动机评分,它比对的是你填的答案与安装包及其 SDK 的真实行为。哈希过的邮箱仍然算关联,IDFA 这类广告标识符既算关联,通常也算跟踪。
五、跟踪与 ATT:三件事必须同时成立
「跟踪」的定义很窄:把你从 App 中收集的数据与第三方数据结合用于定向广告,或者把数据卖给数据经纪商。只要有任何一类数据被用于跟踪,以下三件事必须同时成立:
- 问卷里把该类型标记为用于跟踪,商品页上它会出现在「用于跟踪你的数据」里。
- App 实现了 App Tracking Transparency:系统弹窗、Info.plist 里的
NSUserTrackingUsageDescription说明文案,以及读取任何标识符之前先检查授权状态。 - 两条路径的行为都对得上:拒绝授权的用户不能继续收到定向广告,而且 SDK 层面要真正按这个状态配置,不能只在你自己写的代码里「暂停一下」。
声明了跟踪却没有 ATT,是拒审。做了 ATT 却声明没有跟踪,一旦审核员核对 SDK 清单就会暴露矛盾。这两份东西会被互相印证,所以问卷复核必须和 Info.plist 复核放在同一张清单里,而不是分给两个人各看一半。
六、隐私清单帮了什么,没帮什么
第三方 SDK 现在会随包提供隐私清单 PrivacyInfo.xcprivacy,声明它收集的数据类别以及用到的 required-reason API。苹果会把构建中各个 SDK 的清单汇总起来,用于预填问卷的一部分内容——SDK 声明过的数据类型会出现在流程里,供你确认或调整。
但这是辅助,不是免责。有三块空白仍然只能由你补齐:
- 你自己的代码。 清单描述的是 SDK。第一方代码收集的数据——账号体系、文件上传、自己写的埋点——没有隐私清单,最容易被整段漏掉。
- 配置差异。 一个 SDK 能收的能力往往大于它在你这版里实际收的范围。清单声明的是上限,你的答案要描述的是实际配置,并且要能说清楚某个被标为「未收集」的类型为什么确实没收。
- 汇总结果。 预填答案是很多来源拼出来的起点,最终标签仍然由你负责。每一条类型、用途和关联标记都要逐项确认,而不是默认接受。
七、六种最常导致拒审的答案
我们处理过的隐私标签类拒审,几乎都落在这六种模式里:
- 带广告 SDK 却填「未收集数据」。 标签声称什么都没收集,安装包里却在加载 SDK 并把标识符发出去,按元数据不实处理。
- 声明跟踪但没有 ATT。 没有弹窗、没有说明文案,标识符照读。
- 做了 ATT 但没声明跟踪。 弹窗出现,问卷却说没有跟踪,两份材料自相矛盾。
- 漏掉第三方 SDK 的数据。 只填了第一方数据,聚合、分析、崩溃这几类 SDK 全部没写。
- 用途错配。 数据声明为 App 功能,SDK 却拿它做广告。
- 换 SDK 后标签没更新。 问卷还描述着两个版本前删掉的那个 SDK,新接入的这个多收了两类数据却没有体现。
这六种都可以用同一条纪律避免:把问卷当成发版清单的一部分,对着解析后的依赖清单逐条复核,而不是当成 App 创建时填一次就再也不动的初始设置。
八、每次提审前该跑的那一轮复核
先准备证据,再改问卷。导出这一版 release 构建的依赖解析清单,列出所有会碰到标识符、位置、通讯录或使用数据的 SDK,逐个打开它们的隐私清单。把这份清单和当前的 App Privacy 答案对照,找出多出来的和漏掉的。确认之后再修改问卷,并记录改了什么、为什么改,留给团队存档。
如果在两个商店同时上架,这件事还有下半场:Google Play 的 Data safety 表单问的是高度相关的问题,但分类体系和「共享」的定义都不一样。两份申报在实质上必须一致——一个告诉苹果会把标识符共享给广告合作方的 App,不能同时告诉 Google Play 什么都没共享。维护一张内部数据流表,两份申报都从这张表推导出来,否则两个商店迟早描述出两个不同的 App。
九、KappS 在这里做什么
我们协助开发者准备并提交准确的隐私申报:从构建里读出真实的 SDK 依赖清单,把每个 SDK 的隐私清单映射到苹果要求的类别上,让 App Privacy 的答案与 ATT 实现、Info.plist 文案互相对齐,再和 Play 的 Data safety 表单交叉核对,确保两个商店讲的是同一件事。我们只描述平台真正要求的流程、帮你把话说准确——不承诺审核结果,也绝不建议申报得比 App 实际行为更少。如果是因为隐私元数据被拒,把拒审原文和 SDK 清单发过来,我们会指出是哪一条答案与安装包对不上。
清单:保存问卷前的 12 项检查
- 依赖清单从 release 构建导出,不靠回忆。
- 每个带隐私清单的 SDK 都打开过,声明类别记录在案。
- 第一方收集与 SDK 收集分别列清。
- 每个数据类型的用途都是真实发生的。
- 只要有广告网络拿到数据,「第三方广告」就必须勾上。
- 关联与否,用「能不能查到这个人」来判断。
- 跟踪标记与 ATT 弹窗、说明文案、运行时检查一致。
- 拒绝 ATT 的路径实测过,包括 SDK 内部也停止定向请求。
- 没有未申报的数据经纪商或跨 App 广告共享。
- 标签描述的是这次提交的构建,不是上一个版本。
- 重读过 Play 的 Data safety 表单,与苹果侧标签一致。
- 变更记录写清楚:哪个 SDK、哪类数据、什么用途、谁复核。
