
上周三下午,一个做记账 App 的开发者把后台截图发给我,问我这么填行不行。
截图是 App Store Connect 里的「App 隐私」那一页,六个大类他一个没展开,全选了"不收集"。我问他接了几个第三方的东西。他掰手指头数:一个统计,一个推送,一个微信登录。
他愣了一下:可这些又不是我写的代码。
对,不是你写的。但这一页问的,从来不是你写了多少行代码。
这一页是给用户看的
用户点开任何一个 App 的详情页,往下滑,会看到一小块"App 隐私",写着它可能收集哪些数据、有没有跟你关联、有没有拿去追踪你。
这块由开发者自己填。苹果的规则写得很明白:提交新 App 和每一次更新,都必须提供这些信息。它不是装饰,是提交的一部分。
那位开发者填"不收集"的时候,想的是"我没主动收集用户信息"。放在很多 App 上这话成立——记账的,账目存在本地,不上传,确实没什么可报。
问题是他接了统计 SDK。而那个 SDK 在做什么,他心里没底。
"收集"这两个字,比你想的窄
苹果对"收集"有个很具体的说法:把数据从设备上传出去,并且你或者你的第三方伙伴,能在"处理完这次请求所需要的实时时间"之外,还拿得到。
两层。第一层,数据得离开设备。本地去重、本地记一笔账、本地算汇率,都不进那一页。第二层,得留得住。只为这一次请求发出去、服务完就丢、不落盘,也不用报——苹果举的例子是认证用的 token,或者一个不留存的 IP 地址。
打个比方。找邻居借梯子,用完马上还,叫借用;搬回自己家放半年,叫占用。数据一样,看它有没有在你或者别人的服务器上"住下来"。
所以判断标准不是"我有没有写采集代码",是"数据有没有落地"。
第三方 SDK 做的事,记在你账上
这是最容易吃亏的一层。苹果把"第三方伙伴"定义得很宽:分析工具、广告网络、第三方 SDK、其他外部供应商,只要代码进了你的 App,都算。
也就是说,你接的那个统计 SDK,每天上报多少设备信息、什么型号、什么系统版本、有没有拿到广告标识符,都得由你在那一页里申报。不是你"觉得"它没收集,是它实际上报了什么。
更绕的是追踪。苹果举过一个例子:有些 SDK 会把从你这个 App 收到的数据,跟其他开发者 App 里的数据合在一起,做定向广告或广告衡量。哪怕你完全没打算这么用,只要它有这个能力并且在用,也算追踪。
那位开发者沉默了几秒,说"那我岂不是在替它背书"。
对。你在标签上签的字,等于替所有装进包里的代码签了字。
什么情况下可以不填
有,但要同时满足四个条件,缺一条就得填。
一,这份数据不能用于追踪,不能跟第三方数据关联做定向广告,也不能跟数据经纪人共享。
二,不能用于第三方广告,也不能用于你自己的广告、营销或其他用途。
三,收集必须是偶发的、不是你 App 的核心功能,用户可以不参与。
四,数据得是用户自己在界面里主动提供,用户清楚知道要交什么,而且每次都是他自己确认提交。
四条里最容易误读的是第三条。很多人看到"客服反馈表单"就放心了——跟核心功能无关、可选的反馈表单可能不用报。但请注意"可选":用户没得选,或者表单就在主流程里,这条就不成立。
另外,用户第一次授权之后持续在收集的数据,也必须申报。签过一次同意,不等于后面都不用说。
"关联"和"追踪"是两件事
"与用户关联"讲的是,你收集的数据能不能顺着账号、设备、其他信息,指回一个具体的人。去标识化、匿名化处理过的,才算不关联。苹果还有一句更严的:按相关隐私法律定义的"个人信息""个人数据",都视为与用户关联。所以别想着"把名字去掉就不算",得看去掉之后还能不能还原。
"追踪"是另一件事:把从你 App 收集的、关于某个用户或设备的数据,跟第三方数据——别家 App、网站、线下渠道来的——关联起来做定向广告或广告衡量,或者共享给数据经纪人。
不算追踪的情况只有一种:数据只在用户设备上做关联,没有以能识别用户或设备的方式传出去。
几个容易漏的地方
App 里有网页视图的,网页流量产生的数据要申报,除非你只是让用户去浏览开放网络。
还有两个新东西:第三方 SDK 的签名和隐私清单(privacy manifest)。这两项是苹果近两年推的,目的是让"包里到底有哪些 SDK 在收数据"变得可查。填之前先把依赖列表拉出来看一眼,比凭印象勾靠谱。
提交前,把三张表对一遍
权限表:相机、麦克风、通讯录、定位、相册、健康,弹过窗的都列一行,写清为什么用。
依赖表:Podfile、Gradle 依赖、Flutter 插件,每个库列一行,写清它会不会往外传数据。不确定就去翻它的隐私说明。
接口表:你的服务器收到了什么。用户 ID、设备号、位置、订单、日志,一条条对。
三张表对完再去填,心里就有底。反过来,先凭感觉勾完再回头查,十有八九要返工。
提交前的预审也是干这个的:把安装包和资料放一起看,看包里的权限、SDK、功能,跟你准备提交的说法对不对得上。150 多个审核要点里,这类"说的和做的不一致"是最常见的返工原因之一。被拒一次、改一版、再等一轮,花掉的时间远比自查多。
那位做记账 App 的开发者,最后重填了一遍:统计 SDK 上报的设备信息、粗略位置、使用数据,老老实实勾上,用途选了"分析";推送只用了本地通知,没勾。提交之后,一次过。
他后来说了句话,我觉得挺对:这一页不是让你自证清白,是让你把话说全。
拿不准自己该勾哪几行,可以把依赖列表和权限列表发过来,我这边帮你对一遍再提交:https://www.chuxueyun.com/app-review
(文中场景来自工作记录改编,具体填写以 App Store Connect 当前的选项和苹果最新规则为准。)