Apple 把 App Review 的运作方式写了下来。提交之前我会改的地方在这里
作者 Justinas Rolando,MacPip 的开发者
在 2026年11月 的 Hello Developer 中,Apple 介绍了新的 App Review 帮助文章。它们把我们大多数人从被拒经历中学到的东西写成了文字:Apple 的目标是在不到 24 小时内审完 50% 的提交,在不到 48 内审完 90%;演示登录账号在审核开始时必须仍然可用;想回答问题时应该在 App Store Connect 里回复,而不是重新提交;以“Bug Fix Submissions:”开头的被拒通知,允许你先发布修复,下次再处理这个问题;超过一半的截图必须展示应用的实际使用;每一项权限都需要各自清晰的 purpose string。只有一篇文章明确提到了 Mac,但每条规则都适用于 Mac App Store 的提交。
我对 App Review 的了解,大部分来自被拒的邮件。所以当 Apple 的 2026年11月 Hello Developer 说“Browse new App Review help articles”时,我把它们全读了。现在它们集中在 App Review Help 一处,很多过去只是口口相传的事,现在都白纸黑字写了出来。
下面是其中对 Mac 应用重要的内容,以及我在下次提交之前会改的地方。
先说说这篇适合谁
App Review 只审查通过 App Store Connect 的内容:Mac App Store、TestFlight、In-App Purchases 等等。如果你用 Developer ID 在自己的网站上销售 Mac 应用,Apple 没有人会审核它。它要经过的是公证,那是一种自动检查。所以如果你只做直接分发,扫一眼就行,等哪天要上架 Mac App Store 时再回来看。
审核要多久
审核状态那篇文章给出了 Apple 自己的目标:至少在不到 24 小时内审完 50% 的提交,在不到 48 小时内审完 90%。它还说明了哪些情况会更慢,比如审核历史有限、Apple 需要的文件,或者复杂、新颖的问题。
我会这样做:规划上线日时,前面留出整整两天,第一款应用就多留一些。并且提前提交、选择手动发布,这样你就能自己挑上线的那一分钟。
审核的成败就在 Notes 里
完整审核那篇文章说得很直白:“不完整的提交将被拒绝。”需要留意的细节有:
- 演示登录账号在审核开始时必须仍然可用,而不只是在你提交的时候。测试账号如果在这期间过期或被改动,可能会被拒。
- 如果登录需要验证码,请写进 Notes。不写的话,Apple 可能需要打电话联系,而电话通常要在 3 到 5 个工作日内完成。这样一周就没了。
- 订阅类应用需要一个订阅已过期的演示账号,这样审核人员才能看到完整的购买流程。
我会这样做:把 Notes 写得像给陌生人看的简短操作说明。先点哪里、用哪个账号,以及如果你的应用没有窗口,菜单栏图标是做什么的。最后这一点非常 Mac。
被拒的时候
这是我多希望几年前就能看到文字说明的部分。
- 不要为了回答问题而重新提交。如果 App Review 要求提供信息,请在 App Store Connect 里回复。只有在需要修复构建时才重新提交,而且要等他们指出的每个问题都修好之后。
- 留意开头有没有“Bug Fix Submissions:”。如果被拒通知以这句话开头,Bug Fix Submissions 文章说明你可以回复接受,并在下一次更新时再处理这个问题。不要重新提交。它只适用于之前获批过的应用,法律或安全问题永远不适用,同一个问题也不能拖延两次。
- 加急审核只在真正需要时才用。Apple 表示,加急请求“应只用于真正紧急的事项”,而且只适用于已经送审的构建。如果上线时间与某个活动挂钩,请把活动和日期写在 Notes 里。
- 申诉放在最后。先回复被拒的通知并说明情况。如果没用,App Review Board 每个应用只受理一次申诉,而且一旦你重新提交,就不能再对那次被拒提出申诉。
带编号的四条规则
这些指南文章简短而具体。
- 截图,2.3.3。你的截图中,超过一半必须展示应用的实际使用,并且按设备类型分别计算。三张截图的话,就要有两张是应用画面。启动画面或标题卡只要占少数就没问题。MacPip 的截图检查器会检查尺寸,其余的你可以自己数。
- 山寨与冒充,4.1。不要在任何元数据字段里放热门应用的名称或受商标保护的词。关键词也包括在内,写进竞品的名字是最典型的失误。App Store 关键词检查器会统计各个字段的字数,方便你看清里面有什么。
- purpose string,5.1.1(ii)。每一种受保护的资源都需要各自清晰的 purpose string,如果你的应用做了本地化,它也要本地化。Apple 自己给出的反面例子是“To use location.”。你还要为所用 SDK 发出的请求负责。把 Info.plist 粘贴到 Info.plist 解读器里,它会标出空的和含糊的。
- 账号删除,5.1.1(v)。如果用户可以在你的应用里创建账号,就必须能够在应用内发起删除。仅停用是不够的,也不能让他们打电话给你。如果用户订阅了,要告诉他们在取消之前,Apple 会继续扣费。
关于 Mac 的那一句
只有兼容设备那篇文章提到了 Mac。它说,兼容的 iPhone 和 iPad 应用可以不经修改就在搭载 Apple silicon 的 Mac 上运行,而依赖键盘做不到的触控操作的应用,不太适合 macOS。如果你做的是 iPad 应用,请检查它是否出现在 Mac App Store 上,如果它配合键盘和触控板用起来不好,就把这个关掉。同一页还说,TestFlight 最多支持 100 名内部测试员和 10,000 名外部测试员,而且你给外部测试员的第一个构建也要送 App Review 审核。
What's New 也算数
还有一条来自指南而不是新文章。Guideline 2.3.12 说,你的 What's New 文字必须描述新功能和变更,只有简单的 bug 修复和性能优化才能用一句笼统的话带过。在带有新功能的版本里写“Bug fixes and improvements”,等于是在招来提问。
所以今天新增的免费工具是更新说明格式化工具。粘贴你随手写的笔记,或者 git log --oneline 的输出行。它会把内容归入新增、改进和修复,去掉 chore、ci 和 merge 的行,标出工单号和文件名,检查 4,000 字符的上限,并给你三份副本:用于 App Store Connect 的纯文本、用于 Sparkle appcast 的 HTML,以及用于 GitHub 的 Markdown。你的笔记只留在浏览器里。这些内容所在的订阅源,可以用旁边的 Sparkle appcast 检查器来检查。
我的简短清单
- 上线日前留出整整两天,并使用手动发布。
- 陌生人也能照着做的 Notes 内容,再加一个能用的演示账号。
- 对方只是提问时,回复就好,别重新提交。
- 数清截图,读一遍每条 purpose string,别在关键词里放其他应用的名字。
- 说明改了什么的 What's New。
应用发布之后,不论是否在 Mac App Store,在 MacPip 收录都是免费的。收录的内容在提交时会自动扫描,蓝色对勾只表示有人在某个日期亲手试用过这款应用。
来源
- Apple Developer:Hello Developer,2026年11月
- Apple Developer: App Review Help
- App Review Help: 跟踪提交的审核状态
- App Review Help: 提供完整审核所需的信息
- App Review Help: 接受 Bug Fix Submission 提议
- App Review Help: 申请加急审核
- App Review Help: 向 App Review Board 申诉
- App Review Help: 2.3.3,用截图展示应用的实际使用
- App Review Help: 4.1,避免因山寨和冒充被拒
- App Review Help: 5.1.1(ii),写清楚 purpose string
- App Review Help: 5.1.1(v),在应用中提供账号删除功能
- App Review Help: 在兼容设备上测试你的应用
- Apple Developer: App Review Guidelines
继续阅读
- Claude Fable 5.2 和 Mythos 5.2:有什么新变化、基准测试,以及对你的 Mac 意味着什么Claude Fable 5.2 和 Mythos 5.2 于 2026年11月9日 发布。这里有做成图表的 Anthropic 基准测试、价格、在 Mac 上有哪些变化,以及四个免费工具。
- Swift Student Challenge 现在接受 Mac 应用了。这是我会做的Apple 的 Swift Student Challenge 2027 从 2月8日 到 28 接受报名,并首次接受适用于任何 Apple 平台(包括 macOS)的应用。规则、日期,以及我会怎样规划一份 Mac 参赛作品。
- macOS 27.2.1 起 curl 不再信任 eMudhra。我会在 Mac 应用里检查这些在 eMudhra 密钥泄露之后,macOS 27.2.1、26.7.3 和 15.8.3 从 /etc/ssl/cert.pem 中移除了 5 个根证书。本文说明改了什么、影响到谁,以及 Mac 应用开发者该测试什么。
- Live Activities 来到 Mac 菜单栏。如果是我的 Mac 应用,我会这样做macOS 27.3 测试版把 Live Activities 放进了 Apple silicon Mac 的菜单栏,Mac 应用也可以自己启动。这里讲有什么变化、有哪些限制,以及先试什么。
- 内存让 Mac 变贵了。我会这样处理我的 Mac 应用Apple 说,因为内存,Mac 会一直紧缺、涨价到 2027,而最便宜的 Mac 只有 8 GB。这对你的 Mac 应用意味着什么,以及本周可以做的检查。
- Apple 现在允许你和取消订阅的人说话了。如果是我的 Mac 应用,我会这样做自 11月4日 起,App Store 订阅可以在用户取消时显示一条消息或优惠。规则、Apple 的说法,以及在 Mac 上要检查什么。
- Apple 新增了两个年龄分级问题。我会这样处理我的 Mac 应用从 11月16日 起,App Store Connect 会询问位置共享和约会功能,所有应用都必须在 2027年1月12日 前回答。有哪些变化,以及该怎么做。
- Siri AI 现在向所有开发者开放了。我会先为自己的 Mac 应用做这些Apple 在 macOS 27.3 测试版中向所有开发者开放了 Siri AI。这篇文章讲清楚有什么变化、现在能发布什么和不能发布什么,以及给小型 Mac 应用的一个简短计划。
- 触控屏 Mac 将于 11月6日 发货。我会在自己的 Mac 应用里检查这些Apple 的首批触控 Mac 将于 11月6日 到货。这篇文章讲有什么变化、Apple 建议开发者怎么做,以及一份可以在你自己的 Mac 应用里测试的简短清单。
- MacPip 简介MacPip 是什么、我为什么做它、收录和发布日如何运作、蓝色对勾真正意味着什么,以及它最初几天的真实数据。
- 如何发布 Mac 应用:一页纸的清单Mac 应用发布日前后该做什么:签名、你的页面、目录、Product Hunt、Show HN,以及该衡量什么。
- 如何写一句话描述你的 Mac 应用做什么一种朴实的写法,用来写你 Mac 应用名称下面那一行文字:说清它做什么,去掉夸大,并找一个从没见过这个应用的人来测试。
- 用朴实的语言讲解签名与公证,面向第一次制作 Mac 应用的人代码签名、公证和装订(stapling)各自做什么、按什么顺序进行、没有它们时用户会看到什么,以及如何检查你自己的构建版本。
- 一个提供 dofollow 链接的网站,坦白说这种链接值多少dofollow 的含义、Google 对链接的说法、为什么新目录的链接目前价值不高,以及不买链接时该怎么做。