好的 App Store 更新说明只回答一个问题:我更新之后,有什么不一样? 下面的 App Store 更新说明示例都遵循同一个模式:先写用户会注意到的变化,具体写出每一项修复,用户看不到的内容一律省略。Apple 自己对 此版本的新功能 字段的指引也是这么说的:它要求填写新功能、界面改进或错误修复,并建议告诉用户“此版本中更改、改进或修复的具体内容”。
App Store Connect 和 Google Play 对更新说明有哪些规则?
Apple 的“新功能”字段最多 4,000 个字符,首个版本之后的每个版本都必须填写。Google Play 每种语言最多 500 个 Unicode 字符,并禁止推广内容。
| 规则 | App Store Connect | Google Play 管理中心 |
|---|---|---|
| 字段 | 此版本的新功能(What's New in This Version) | “准备发布版本”页面中的版本说明 |
| 长度 | 最多 4,000 个字符 | 每种语言最多 500 个 Unicode 字符 |
| 何时必填 | 首个版本之后的每个版本;首个版本不提供该字段 | 每个发布版本单独填写 |
| 本地化 | 可按语言分别本地化 | 按语言分块,用 <en-US> 这类标签包裹 |
| 内容沿用 | 当前版本的元数据会复制到新版本 | 从之前的发布版本复制会替换现有条目 |
截至 2026 年 10 月,Play 管理中心帮助 中写道:“请勿将版本说明用于推广目的或诱导用户执行操作。”在 Apple 平台上,请把营销文案放到 推广文本 中。该字段允许 170 个字符,显示在描述上方,而且 Apple 允许你在不提交新版本的情况下更新它。
好的 App Store 更新说明是什么样的?
好的更新说明会点出用户之前遇到的情况,以及他们现在得到的结果。下面的示例来自一个虚构的习惯打卡 App。其中“含糊版本”就是那种临到最后一刻才匆忙写出来的说明。
| 变更 | 含糊版本 | 具体版本 |
|---|---|---|
| 新功能 | 新功能和改进! | 出行也不断签:提醒现在会跟随你当前所在的时区,坐一趟飞机不会再中断你 30 天的连续打卡。 |
| 错误修复 | 修复错误。 | 修复了打开打卡次数超过 500 次的习惯时发生崩溃的问题。 |
| 界面变更 | 设计更新。 | “今天”页面现在优先显示未完成的习惯,已完成的移到底部可折叠的区域。 |
如果一项修复技术性太强,一句话讲不清楚,用户大概率也察觉不到,那就可以归入末尾一句“稳定性改进”。准则 2.3.12 允许小修复这么写,但真正的功能变更不行。
有没有可以复用的更新说明模板?
有。一个可复用的模板包含一句标题,然后是“新增”“改进”“修复”三个部分(下方模板保留英文原文,使用时按你的语言填写)。把它放在代码仓库里、紧挨着 changelog,在切出发布分支时就填好,而不是等构建上传之后再写。
[One-line headline: the change most users will notice]
New
- [Feature]: [what you can now do], [where to find it]
Improved
- [Screen or flow]: [what feels different]
Fixed
- [Symptom the user saw] when [situation]
Thanks for the reports. Reply via Settings > Help if anything looks off.用于 Google Play 时,把同一份说明精简为标题加最重要的两三条要点,确保不超过 500 个字符。每种语言的标签单独占一行,例如 <en-US> 和 </en-US>。Play 版本请删掉最后那句结束语,因为它在要求用户执行操作。
如何把已合并的 Pull Request 整理成更新说明?
要把已合并的 Pull Request 整理成更新说明,先筛掉用户看不到的变更,再把剩下的每项改写成用户感知到的症状或结果。每次发布都按以下步骤操作。
- 导出自上一个 tag 以来已合并的 Pull Request 标题,删除所有用户看不到的内容,例如重构、依赖升级和 CI 改动。
- 把剩下的每一项改写成症状或结果。“Fix nil coordinator”应改为“修复了使用 Apple 登录后出现空白页面的问题。”
- 按影响的用户数量排序,而不是按投入的工程量排序。
- 在 App Store Connect 中创建新版本,然后在粘贴新说明之前先清空复制过来的“新功能”文本,因为上一版本的元数据会被沿用。
- 把说明粘贴到你支持的每一个本地化版本中,翻译好或至少在每种语言下核对一遍,避免其他地区的用户看到上个版本的说明。
- 对于 Play,把精简版粘贴到语言标签内,并确认每种语言都不超过 500 个字符。
- 把说明大声读一遍。如果某句话需要开发者来解释,就重写它。
紧急修复版本的更新说明应该怎么写?
紧急修复(hotfix)的更新说明应点明出问题的版本号,描述已修复的症状,并告诉受影响的用户更新后会发生什么。Apple 不允许在 App Store 上回退 到之前的版本,所以修复总是以新版本的形式发布。
示例:“修复了 3.4.0 版本中部分用户提醒不再触发的问题。你在更新前设置的提醒会自动恢复。”受影响的用户知道应该更新,未受影响的用户也能看出这次修复与自己无关。不要把责任推给操作系统,也不要承诺未来修复的日期。如果你采用 分阶段发布 来推送更新,在修复版本审核期间暂停发布,可以限制拿到问题版本的用户数量。如果这次紧急修复改变了某个功能的行为,请再过一遍 App Store 提交清单,确保说明、截图和审核备注保持一致。
App 审核会因为更新说明拒绝一次更新吗?
会。更新说明属于元数据,App 审核指南 对其有直接规定。准则 2.3.12 写道:“App 必须在其‘新功能’文本中清楚描述新功能和产品变更。”
对于“简单的错误修复、安全更新和性能改进”,可以使用笼统的措辞,但“较重大的变更必须在说明中列出”。准则 2.3.10 禁止在元数据(包括“新功能”)中出现其他移动平台的名称或图像。不要描述藏在功能开关后面的功能,也不要描述提交的构建版本中没有的东西。准则 2.3.1(a) 另外要求新功能必须“在审核备注部分具体描述”,所以审核人员的操作步骤和 演示账号 应该放在那里,而不是写进公开的更新说明。如果你确实收到了关于元数据的问询,我们的 App Store 被拒修复指南 讲解了如何回复。
其他开发者在更新说明上踩过哪些坑?
公开报告的案例显示了两类失败:一类是因超出商店长度限制而被拒绝的上传,另一类是审核拒绝时要求一并清理“新功能”文本。
- CI 中的 Play 长度限制。 某个 Flutter 部署模板的 GitHub issue 报告称,一份 AI 生成的 changelog 导致通过 fastlane 向 Google Play 内部测试上传失败,报错为:“The release created has notes in language ko-KR with length 612, which is too long (max: 500).”维护者随后添加了一个在上传前截断说明的脚本:Play 截断为 480 个字符,TestFlight 截断为 3,800 字节,因为 TestFlight 的限制按字节计算。
- 涉及“新功能”的 2.3.10 清理要求。 一位开发者在 Apple 开发者论坛 上发帖,称截图中出现非 iOS 状态栏而触发了准则 2.3.10 拒绝。Apple 给出的后续步骤要求“从你的 App 及其元数据中删除所有此类信息,包括 App 描述、推广文本、‘新功能’信息、预览和截图。”回复者建议重新截图,并检查包括更新说明在内的每一个元数据字段。
结论:长度限制是机械性的,上传时就会明确报错;而审核规则针对的是内容,适用于每一个元数据字段。把字符数检查自动化,并像对待截图一样认真审读“新功能”文本。
提交更新说明前应该检查什么?
提交前,请确认说明只描述构建版本中实际包含的内容,符合各商店的长度限制,并且在每种语言中都替换掉了上个版本的文本。
- 标题点出了大多数用户会注意到的变化。
- 按照准则 2.3.12 的要求,列出了每一项重要功能或产品变更。
- 每项修复描述的是用户看到的症状,而不是内部代码。
- 不包含功能开关后的功能、对未来的承诺、内部工单编号或其他平台的名称。
- 已在每个本地化版本中清空并替换上一版本的“新功能”文本。
- Play 说明每种语言不超过 500 个字符,用正确的语言标签包裹,且不含推广内容或行动号召。
- 营销信息已移至 Apple 的推广文本。
- 如果你同时在招募 Android 测试人员,已对照你的 封闭测试计划 检查过同一份说明。
如果你希望在提交前请人再帮你把一遍更新元数据,请将说明草稿和该构建版本的变更列表发送至 yagyeshsrbobde@gmail.com,或查看我们的 服务。
常见问题
每次 App Store 更新都必须写更新说明吗?
是的。截至 2026 年 10 月,App Store Connect 说明“此版本的新功能”字段在 App 的首个版本中不可用,但之后的所有版本都必须填写。该字段上限为 4,000 个字符,并且可以本地化,因此你支持的每种语言都应有各自的说明。由于元数据会从上一版本沿用过来,请确认你没有把上个版本的文本再次提交。
“修复错误并提升性能”可以作为更新说明吗?
只适用于确实很小的更新。准则 2.3.12 规定,简单的错误修复、安全更新和性能改进可以使用笼统描述,但较重大的变更必须在说明中列出。如果某次更新新增了功能、改变了导航或调整了定价相关行为,就要在“新功能”中点明。对于用户察觉不到的小型内部修复,可以在说明末尾加一句笼统的话。
Google Play 版本说明最长可以写多少?
Google Play 管理中心接受每种语言最多 500 个 Unicode 字符的版本说明。每种语言的内容放在各自的标签之间,例如 <en-US> 和 </en-US>,标签与正文分行放置。通过 Play Developer API 或 fastlane 上传时,超出限制的内容会被拒绝,因此请把较长的 App Store 说明精简为一句标题加两三条要点再用于 Play。
可以在更新说明里宣传促销或优惠活动吗?
在 Google Play 上不行。Play 管理中心帮助文档明确表示,不要将版本说明用于推广目的或诱导用户执行操作。在 App Store 上,请改用“推广文本”字段。它显示在描述上方,上限为 170 个字符,Apple 表示无需提交新版本即可更新。“新功能”字段则专门用来描述这个构建版本的变化。
App Store 更新说明里可以提到 Android 或其他平台吗?
尽量避免。准则 2.3.10 禁止在 App 或元数据中出现其他移动平台或替代应用市场的名称、图标或图像,除非存在经批准的特定交互功能。Apple 依据 2.3.10 发出的拒绝信息中,明确把“新功能”信息列为需要清理的位置之一。与其点名 Android,不如写“现在可在你的各台设备之间同步”。
来源与延伸阅读
政策会变化。提交前请查阅官方文档。
- 创建新版本 - App Store Connect 帮助 ↗核查于 2026年10月25日
- 平台版本信息 - App Store Connect 帮助 ↗核查于 2026年10月25日
- 准备和发布版本 - Play 管理中心帮助 ↗核查于 2026年10月25日
- App 审核指南 - Apple Developer ↗核查于 2026年10月25日
- Apple 以两个理由拒绝了我的 App - Apple 开发者论坛 ↗核查于 2026年10月25日
- Flutter 部署工作流失败:未应用更新说明长度限制 - GitHub issue #347 ↗核查于 2026年10月25日


