NeuralOS
GuideIntermediate

删除账户又不被 Apple 打回 · 5.1.1 规则的正确做法

你走到了最后一步:app 已经准备好上架 App Store。结果 Apple 因为一个你从没听说过的原因把它打回了。自 2022 年 6 月起,如果你的 app 允许**创建**账户,那它也必须允许从内部**删除**账户(5.1.1 v 规则)——而停用不算数。网上那个"快速合规"的建议(把用户数据藏起来)是个双重陷阱:它既违反欧洲的 GDPR 和加州的 CCPA,Apple 也照样拒审。这里是唯一正确的做法:真正删除个人数据,又不把数据库搞崩,把按钮放在 Apple 要求的位置,附上可以直接粘贴的 prompt,并讲清楚订阅这种情况该怎么处理,才不会在这个过程中赔钱。

Jun 19, 202610 min
这是给谁看的?
给任何要发布带用户账户的 app(尤其是 iOS)的人——你不需要会编程。如果你的 app 允许注册,Apple 就一定会要求你做这件事。与其被拒审、白白浪费好几天,不如第一次就做对。

这什么时候会冒出来?(为什么它会打你个措手不及)

这一刻总是相同,也总是让人难受:你做完了 app,提交到 App Store 审核……然后因为 5.1.1 规则被拒审。它之所以让你措手不及,是因为 AI 在构建时,注意力都放在创建账户和使用 app 的流程上——几乎从不去想删除账户的流程。这是一项法律和 Apple 的要求,你必须在发布前明确、主动地把它要出来。

这条规则,具体来说(Apple 5.1.1 v)
如果你的 app 允许创建账户,那它必须允许从 app 内部发起删除该账户。只提供"停用"或"暂停"不行。把用户引导到某个邮件或外部表单也不行(除了银行、医疗这类高度监管的行业)。这个按钮必须容易找到,通常放在设置里。

那个会让你输两次的陷阱

网上那个有毒的建议
有种说法在流传:"为了快速合规,保留账户但把姓名和邮箱藏起来"。千万别这么做。藏起来不等于删除:(1) 它违反欧洲的 GDPR 和加州的 CCPA——两者都要求真正删除个人数据——会让你面临罚款;(2) Apple 一旦发现,照样拒审。两头都输。

正确的做法 · 软删除 + 匿名化

这里是真正行得通的平衡点。真正的技术难题是:如果你"粗暴地"删掉用户,数据库就会崩(他的订单、评论等等会指向一个已经不存在的用户)。专业的解决方案:真正删除个人数据(姓名、邮箱、照片、电话),但在原位留下一个匿名空壳,以免破坏关联。个人数据永远消失;而你数据库的完整性得以保留。

这样想象一下
就像一个员工离开公司:你从系统里删除他的个人数据,但他参与过的项目不会凭空蒸发——它们被标记为"前员工"。工作还在;而这个人被匿名化了。这就是带匿名化的软删除。

Apple 和法律要求你做到的 3 件事

你的删除功能必须具备
一个"删除我的账户"按钮,容易找到,在 app 内部(通常在设置里)。
真正删除个人数据:姓名、邮箱、照片、电话——以不可逆的方式匿名化。
在认证系统里也要删除(不只是在你的用户表里——在 Supabase Auth / 登录服务商那边也要删)。

主 prompt · 交给你的 AI

这个 prompt 会让你的 AI 拿出满足规则和法律所需的一切,同时不破坏你的数据库。复制粘贴给它:

粘贴给你的 AI · 正确的账户删除文本
为我的 app 实现账户删除,遵守 Apple 的 5.1.1 规则以及 GDPR/CCPA。我的技术栈:[告诉它你的技术栈,例如 Supabase + Next.js]。

1. 在设置里创建"删除我的账户"按钮,容易找到。
2. 删除之前,显示清晰的确认(这是不可逆的),如果需要,可以要求验证身份(通过邮件/电话发一个验证码)。
3. 对个人数据(姓名、邮箱、照片、电话)做带不可逆匿名化的 SOFT DELETE。不要藏起来:把它们替换成匿名值(例如"已删除用户")或 NULL。
4. 留下一个空壳,以免破坏 foreign keys(他的订单/评论不能崩)。
5. 在 auth 系统里也删除身份(例如 Supabase Auth admin deleteUser),不只是在我的表里。
6. 如果用户有一个活跃的 SUBSCRIPCIÓN(订阅),在删除前提醒他,并告诉我如何处理取消,以免继续向他收费,也不丢失法律要求保存的账单记录。
7. 在审计日志里记录该账户已被删除(不含个人数据),以备法律要求时能证明。

给我迁移脚本、匿名化函数和按钮组件,并用简单的步骤向我解释每一部分做了什么。

几乎没人处理的情况 · 订阅

删除时别赔钱(也别违法)
如果被删除的用户有一个活跃的订阅,就有两个陷阱:在他离开之后还继续收费(法律和声誉问题),或者删掉法律要求你保存多年的账单记录。规则是:删除时取消订阅,但保留匿名化的会计记录(不含个人数据)。只要你提出要求,你的 AI 就能处理好——所以它已经写在 prompt 里了。

如何确认做对了

提交审核前的检查清单
按钮在 app 内容易找到(不是藏在某个外部网页里)。
删除之后,个人数据在你的数据库里已经不存在(亲手验证一下)。
用户也从 auth 系统里消失(无法再登录)。
他留下的东西(订单、评论)没有崩——它们仍在,只是作者是匿名的。
如果有订阅,它已被取消,并留下了不含个人数据的会计记录。
这不是法律建议
本指南解释的是为满足 Apple 5.1.1 规则以及 GDPR/CCPA 删除原则所推荐的技术实践。针对你的具体情况(尤其是当你处理敏感数据或身处受监管行业时),请咨询法律专业人士。
在 NeuralOS 里,正确的删除功能是内置的
你在 NeuralOS 上构建的 app 从诞生起就带有现成且合规的账户删除流程——设置里的按钮、匿名化以及 auth 里的删除——这样你就不会因为这一点被拒审。发布前少操一份心。
保护你的 app · 上线前的 3 把锁
上生产环境前另一项不可或缺的要求:RLS、CORS 和安全 headers。
#app-store#gdpr#删除账户#合规
Ready to build?

Start building in
under 3 minutes

Join 4,200+ builders. No credit card. Build your first app with AI in minutes.