App Privacy 填写指南:SDK 要申报哪些数据
作者:Mehdi Azizi
发布于 ,9分钟
App Privacy 用来申报你的 App 及其 SDK 收集的数据、用途、是否关联用户以及是否用于追踪。提交版本前必须先发布。
App Privacy 是 App Store Connect 里的一个板块,用来生成你产品页上的隐私标签。你要在这里申报你的 App 以及你集成的 SDK 收集的每一类数据:用来做什么,是否与用户关联,是否用于追踪。只要你的回答还没发布,App Store Connect 就不让你把版本加入提交。
这些回答随时可以修改,不需要新的 build。最难的是搞清楚 RevenueCat、Sentry、PostHog、Supabase、AppsFlyer、Meta 或 Expo 通知到底该申报什么。下面的表格基于每个 SDK 的文档和它们自带的隐私清单,于 2026 年 10 月 15 日核对过。
我自己用 Expo 和这些 SDK 发布 iOS App。这篇指南讲的是 Apple 的要求和我的实际做法,不能替代法律意见。
App Privacy、隐私政策和隐私清单:三样不同的东西
- 隐私政策是一个网页,你提供它的网址。写法见 iOS App 隐私政策。
- 隐私清单是打包进 build 的
PrivacyInfo.xcprivacy文件,详见 ITMS-91053 指南。 - App Privacy 是 App Store Connect 里的问卷。它在你的产品页上显示为三块:用于追踪你的数据、与你关联的数据、未与你关联的数据。
这三者说的必须是同一件事。 Apple 的 App Privacy Details 页面写明,提交 App 及其更新时必须提供这些信息,而且它们也涵盖你的第三方合作方:分析工具、广告平台、SDK,以及你加入了其代码的服务商。
一步步填写 App Privacy
App Store Connect 帮助文档详细列出了下面这些步骤。
要填写问卷,你的角色必须是 Account Holder、Admin 或 App Manager。
- 在 Apps 中打开你的 App,然后点侧边栏里的 App Privacy。
- 点击 Get Started。
- 回答第一个问题:你或你的合作方是否收集数据?如果答案是否,选择“No, we do not collect data from this app”并保存,就完成了。
- 否则,勾选所有被收集的数据类型,不管是你的代码收集的还是 SDK 收集的。
- 针对每个类型,回答三个问题:用途、是否关联用户、是否用于追踪。
- 检查产品页预览(Product Page Preview),点击 Publish 并确认。
如果你的 App 已经上线,Apple 要求回答描述的是线上版本的数据。
先发布,再提交。 2026 年 9 月,在 Piaf 上把版本加入提交时失败了,提示是:“You must have published answers to your app's data usages.” 我没找到通过 App Store Connect 公开 API 填写这个表单的方法,所以我都在网页界面里填,而且放在所有事情之前。
每项数据都要回答的三个问题
“收集”是什么意思
对 Apple 来说,收集就是把数据传出设备,并且能在超出响应请求所需的时间之后继续访问它。所以:
- 只在 iPhone 上处理的数据不算收集;
- 发送后立即丢弃的令牌或 IP 地址也不算;
- 仅为 App 功能而收集的数据仍然要申报,并注明这个用途。
用途
Apple 给出六种用途:第三方广告、开发者的广告或营销、分析、产品个性化、App 功能和其他用途。同一项数据可以勾选多个:一个既用于登录又用于个性化 App 的邮箱,就勾选 App 功能和个性化。
与用户关联
当数据通过账号、设备或其他方式与用户身份挂钩时,它就是关联的。Apple 指出数据通常都是关联的,除非你在收集前就做了匿名化,并且之后从不尝试重新关联。一旦你把账号 ID 传给某个 SDK(identify、setUser、logIn),这个 SDK 的数据就变成关联数据。
追踪
追踪是指把你的 App 数据和其他公司的 App 或网站的数据关联起来,用于定向广告或广告效果衡量。把数据分享给数据经纪商也算。如果某个 SDK 会把你的数据和其他 App 的数据交叉用于广告,就算追踪,即使你自己并不这么用。
追踪选“是”会带来两个后果:在任何追踪之前要弹出 App Tracking Transparency 请求,详见 guideline 5.1.2;隐私清单里要声明追踪及其域名,缺少域名就会收到 ITMS-91064 错误。
Expo App 的各个 SDK 要申报什么
这张表基于每个 SDK 的默认配置。一旦你给它们传了更多东西,比如邮箱、账号 ID 或自定义事件,就要申报更多。
| SDK | 要申报的数据 | 追踪 | 来源 |
|---|---|---|---|
| RevenueCat | 购买记录 | 否 | RevenueCat 文档 |
| Sentry | 崩溃、性能 | 否 | 文档和隐私清单 |
| PostHog | App 交互 | 否 | PostHog iOS 隐私清单 |
| Supabase Auth | 邮箱、用户 ID | 否 | 未找到文档 |
| AppsFlyer | 设备 ID、交互 | 是,设备 ID | AppsFlyer 隐私清单 |
| Meta SDK | 设备 ID、崩溃 | 是,设备 ID | Meta 文档和隐私清单 |
| Expo Notifications | 设备 ID(推送令牌) | 否 | 未找到文档 |
RevenueCat
它的 App Privacy 文档要求申报购买记录,并勾选所有 RevenueCat 用户都必须勾选的两个用途:分析和 App 功能。是否关联:如果你的 ID 是匿名的,选否;如果你的 RevenueCat 用户 ID 能关联到邮箱,选是。如果你传入自己的 ID,再加上用户 ID;如果你把邮箱作为属性发送,再加上联系信息。SDK 的隐私清单只写了 App 功能:以更完整的文档为准。接入方法见 用 RevenueCat 做 App 内订阅。
Sentry
它的移动端隐私页面写得很清楚:Sentry 是需要申报的合作方,标准用途是分析和 App 功能,它不做追踪,也不需要广告标识符。它的隐私清单声明了崩溃数据、性能数据和其他诊断数据,均未关联。如果你用 Sentry.setUser 把账号 ID 附加到报告上,这些数据就变成关联数据。
PostHog
我没找到 PostHog 发布的 App Privacy 建议。它的 iOS SDK 隐私清单声明了 App 交互和其他使用数据,未关联,无追踪,用于分析。针对 React Native,它的文档指出默认会采集 App 生命周期,使用 React Navigation 6 或更早版本时还会采集屏幕浏览;identify 会把之前的事件关联到用户;另外会附加根据 IP 推断的位置,除非使用 disableGeoip。我的看法是,如果你保留这个位置,就申报粗略位置。
Supabase Auth
据我所知,Supabase 没有发布 App Privacy 建议。按照 Apple 的定义,邮箱登录需要申报邮箱地址和用户 ID,用于 App 功能,关联。它的审计日志还会记录每次登录的 IP 地址:Apple 要求根据你对保留 IP 的用途来申报。另外,你存进数据表的所有东西都算:内容、照片、历史记录。
AppsFlyer 和 Meta
两者的隐私清单都把设备 ID 声明为用于追踪、用于第三方广告。AppsFlyer 的清单还加了 App 交互,用于分析。Meta 的清单还加了崩溃数据和其他数据。Meta 的 iOS 文档说明,它的清单只覆盖默认收集的数据:额外的数据要由你自己申报。
2026 年 7 月,我在 TradaZen 里接入 AppsFlyer 时,加上了设备 ID,用于第三方广告和分析,用于追踪。产品页上随即出现了“Data Used to Track You”这一块。而带 AppsFlyer 的第一个 build 在处理阶段就被拒了:App 的隐私清单声明了追踪,却没写域名。
Expo Notifications
我没找到 Expo 发布的建议,而且 expo-notifications 的隐私清单没有声明任何收集的数据。但你存在服务器上的推送令牌,对你的 App 来说就能识别设备。我比较保守的理解是:设备 ID,用于 App 功能,如果和账号存在一起就是关联的,无追踪。这不是 Apple 写明的规则。
我的方法:用一份清单把所有东西对齐
动问卷之前,我先重读已发布的隐私政策。TradaZen 的政策列出了登录邮箱、订阅、通知令牌、使用统计、错误报告,以及需经同意的广告归因。
政策里的每一行都对应 App Privacy 里的一个类型。每当我加入一个会发送数据的 SDK 或功能,我会在同一天修改隐私政策、App Privacy 和隐私清单。
检查时,用上面提到的 ITMS-91053 指南里的命令列出打包进去的隐私清单。如果你有 Mac 和 Xcode,隐私报告会把它们汇总起来:Product,然后 Archive,然后在 Organizer 里点 Generate Privacy Report。Apple 把它定位为填写 App Store Connect 的辅助工具。
不用新 build 就能更新 App Privacy
Apple 写得很明白:你可以随时修改回答,不需要更新 App。而隐私政策的网址只能随下一个版本修改,这是 App Store Connect 帮助文档里说的。
在这些情况下更新 App Privacy:加入新 SDK 时,把账号 ID 传给现有工具时,或者某个功能开始发送新类型的数据时。只涉及这些申报的拒审可以在线修正,和 guideline 5.1.1 一样。
在 Apple 之前先检查你的材料
Review Kit 包含我的提交前检查清单、我处理过的拒审案例,以及两个 Claude Code skill:它们会检查你的项目和产品页,并在 Apple 拒审时帮你准备回复。
想知道还有什么会卡住你?免费诊断会把我的 Apple 防拒审清单发给你。完整的上架流程请看 把应用发布到 App Store。
常见问题
App Store Connect 里的 App Privacy 是什么?
它是生成你 App Store 产品页隐私标签的问卷:你的 App 及其 SDK 收集的数据、用途、是否关联用户以及是否追踪。提交 App 及其更新时必须填写。
修改 App Privacy 需要新的 build 吗?
不需要。Apple 表示你可以随时修改回答,不需要更新 App:改完之后点 Publish 就行。只有隐私政策的网址要等到下一个版本。
RevenueCat 在 App Privacy 里要申报什么?
根据 RevenueCat 的文档,申报购买记录,用途为分析和 App 功能。如果你传入自己的 ID,再加上用户 ID;如果你把邮箱作为属性发送,再加上联系信息。
Sentry 和 PostHog 算 Apple 定义的追踪吗?
默认配置下不算。Sentry 表示不会用你的数据追踪用户,PostHog 的 iOS 隐私清单也没有声明追踪。不过一旦你把账号 ID 传给它们,它们的数据就变成关联数据。
为什么我无法把版本加入提交?
通常是因为 App Privacy 还没发布。这时 App Store Connect 会显示“You must have published answers to your app's data usages”。先发布你的回答,再加入版本。

