Missing Metadata 订阅卡住:App Store Connect 解决方法
作者:Mehdi Azizi
发布于 ,9分钟
Missing Metadata 表示缺了必填项。依次检查语言、价格、时长、国家、审核截图和付费协议,再把订阅附加到一个版本。
Missing Metadata,法语版 App Store Connect 里显示为“Métadonnées manquantes”,意思是你的订阅或 App 内购买项目至少缺了一项必填信息。按顺序检查:语言、价格、时长、国家或地区、审核截图,以及付费 App 协议。 只要产品还处于这个状态,你就没法提交审核,你的 App 也加载不到它。另外,第一个订阅必须和 App 的某个版本一起提交。
2026 年 7 月,我在自己的交易模拟器 TradaZen 上遇到了这个状态。新的周订阅已经设好了时长、价格、订阅组和两种语言,却还是停在 Missing Metadata。唯一缺的是审核截图。下面是要检查的原因、产品的各个状态以及解锁每个状态的操作,最后讲讲和 RevenueCat 的关系。
Missing Metadata 是什么意思?
直到今年,Apple 帮助文档对这个状态的定义是:产品已经创建,但你还没上传截图或没填完它的元数据。这个状态从不告诉你缺的是哪个字段。问题就在这:你得自己去找。
注意,2026 年 7 月这个标签改了。 App Store Connect 版本说明在 7 月 15 日宣布了新的提交方式:每个 App 内购买项目都在自己的页面里通过 Add for Review 提交。状态说明页里已经没有“Missing Metadata”了。它从“Prepare for Submission”开始,并注明:如果你的 App 内购买项目缺少必填元数据,先补全,再加入提交。RevenueCat 文档也证实:审核前,新产品会显示为“Prepare for Submission”,即使它还缺元数据。
而 App Store Connect API 仍然返回 MISSING_METADATA,然后是 READY_TO_SUBMIT。所以基于 API 的工具还会显示这些词。不管标签叫什么,诊断都一样:有个必填字段是空的。
按顺序检查这些原因
我按这个顺序检查,从产品页面一直查到账户。
| 原因 | 在哪里修改 |
|---|---|
| 名称或描述为空 | 产品页面 |
| 订阅组没有显示名称 | 订阅组页面 |
| 缺少价格或时长 | 产品页面 |
| 没有可用国家或地区 | Availability |
| 缺少审核截图 | Review Information |
| 付费协议未生效 | Business |
| 第一个订阅单独提交 | 提交 |
1. 产品的语言。 根据 App 内购买项目信息说明,显示名称和描述至少要有一种语言是必填的。名称 2 到 30 个字符,描述最多 45 个字符。没有语言的产品提交不了。
2. 订阅组的语言。 订阅组也有显示名称,订阅者在 iPhone 上管理订阅时会看到。它在订阅组页面的 Display Name and Description 部分添加,见 Apple 关于订阅的说明页。这个字段看起来不是必填。但有位开发者在 Apple 论坛上说,只要它是空的,他订阅组里的所有订阅都卡着。状态显示在订阅上,而不是订阅组上,所以容易搞混。
3. 价格和时长。 订阅需要一个时长(一周到一年)和一个价格。产品加载不出来时,技术说明 TN3186 第一步就是检查它的标识符、价格和语言。还要记住:提交审核后,时长就不能再改了。
4. 可用性。 在 Availability 里至少选一个国家或地区。Apple 说明,没有设置可用性,就不会出现“Approved”状态。
5. 审核截图。 这就是我在 TradaZen 上遇到的情况,也是论坛上很常见的原因。“App Review Screenshot”展示的是购买项目在 App 里的样子,通常就是你的付费墙。它只给审核员看,永远不会显示在 App Store 上。它的格式和你的 App Store 截图一样。上传后可以替换,但不能删除。
别把它和 1024 x 1024 像素的推广图片搞混。推广图片只在你要在产品页推广这个购买项目,或者创建赢回优惠时才用得上,而且有它自己的规则。我是被拒过一次才知道的,见订阅推广图片。
6. 付费 App 协议。 要提供 App 内购买项目,账户持有人必须在 Business 里签署 Paid Apps Agreement,然后填写银行和税务信息。这不是产品的字段,但一切都依赖它。Apple 写明,在接受最新版协议之前,你不能创建新的 App 内购买项目。它关于为审核配置 App 内购买项目的页面还补充:协议未生效时,付费购买在审核中无法使用。在 Business 里,协议、银行账户和税务表格都必须处于生效状态。这些步骤在 Apple 开发者账户指南里有详细说明。
7. 第一个订阅单独提交。 这不算缺元数据。但它是信息齐全的产品始终进不了审核的最常见原因。下面我会详细讲。
产品的各个状态,以及如何解锁
这是我一直放在手边的检查清单。第一列是 API 返回的状态,第二列是 2026 年 7 月以来 Apple 帮助文档里的标签。
| 状态(API) | 当前标签 | 解锁方法 |
|---|---|---|
| MISSING_METADATA | Prepare for Submission | 填写字段 |
| READY_TO_SUBMIT | Prepare for Submission | Add for Review |
| 无对应状态 | Ready for Review | Submit for Review |
| WAITING_FOR_REVIEW | Waiting for Review | 等待 Apple |
| IN_REVIEW | In Review | 等待 Apple |
| APPROVED | Approved | 国家或地区 + App 获批 |
| REJECTED | Rejected | 修改,Update Review |
具体来说:
- 从 Missing Metadata 到 Ready to Submit。 把原因 1 到 5 涉及的字段填好,保存,刷新页面。我 7 月看到的法语界面显示的是 Missing Metadata,下一个状态是 Ready to Submit。
- 从 Ready to Submit 到 Ready for Review。 在订阅页面点 Add for Review,把它加入已有的提交或新建一个提交。按照 App 内购买项目的提交流程,你要选择平台、App 版本,需要的话还要选订阅组。从这一刻起,只有参考名称、价格和可用性还能修改。
- 从 Ready for Review 到 Waiting for Review。 确认 App 版本和订阅组在同一个提交里,然后点 Submit for Review。
- 从 Waiting for Review 到 Approved。 什么都不用做,只要保证付费墙正常可用。如果购买项目变成“Accepted”而不是“Approved”,说明同一个提交里的其他项目被拒了:所有内容都通过之前,Apple 不会批准任何一项。
- Rejected。 拒绝原因会出现在提交的消息里。修改对应项目,点 Update Review,然后重新提交。
第一个订阅要和 App 的版本一起提交
规则写在 Apple 帮助文档里:第一个订阅,和每种类型的第一个购买项目一样,必须和 App 的新版本一起提交。 新的订阅组至少要带上它的一个订阅一起提交。第一个项目获批后,只要 App 有已获批的版本,同类型的后续项目就可以不发新版本单独提交。
TradaZen 就是这样。7 月的版本带着年订阅和月订阅一起提交了。周订阅还停在 Missing Metadata,没进这次提交。App 获批后,它就可以单独提交,不需要新的 build。
如果你提交 App 时没带上订阅,就得再发一个新版本才能让它通过审核。App Store 审核时间指南里讲了多走这一轮要多花几天。
和 RevenueCat 的关系:空的 offering
RevenueCat 本身不卖任何东西。SDK 从它的服务器读取你的产品标识符,然后在 iPhone 上向 App Store 请求这些产品。如果 App Store 没有返回,offering 就是空的,付费墙没东西可显示。这时 SDK 日志会显示:“There's a problem with your configuration. None of the products registered in the RevenueCat dashboard could be fetched from the App Store.”
据 RevenueCat 说,元数据齐全的产品在审核前就能在 sandbox 里加载。不齐全的不行。RevenueCat 和 Apple 给出的其他排查方向:
- 付费 App 协议和银行信息,据 RevenueCat 说生效可能要最多 24 小时;
- 对产品的修改,据 Apple 说同步到 sandbox 可能要最多一小时;
- App Store Connect、RevenueCat 和你的代码里的产品标识符不一致。
在 TradaZen 上,如果某个订阅的产品没返回,代码会隐藏它的卡片,不会让付费墙崩掉。2026 年 10 月,我又因为别的原因遇到过一次没有选项的付费墙:从 SDK 缓存读到的 offering 是空的。从那以后,offering 为空时,App 代码会直接向 StoreKit 请求产品,商店没响应时就提示用户重试。
没有选项的付费墙绝不能变成死胡同,对用户和审核员都一样,审核员必须能完成购买。完整的搭建方法在我的 RevenueCat iOS 订阅指南里,显示上的坑见付费墙常见错误。产品准备好后,还要确认你的付费墙符合 guideline 3.1.2。
接好订阅,不用花上一整周
iOS & Android Kit 基于我自己 App 的起始代码:引导页、付费墙和订阅都已经写好,第三步“接入收入”会带你完成配置。从 App Store Connect 产品到购买验证的整条链路,都在 iOS App 内订阅页面里。
如果你在准备第一次上架,做一下免费诊断:它会帮你理清步骤顺序,还会把我的防 Apple 拒审清单发给你。如果这些都做了订阅还是卡着,预约我一小时:我们一起打开你的 App Store Connect,把那个空字段找出来。
常见问题
为什么所有内容都填了,订阅还停在 Missing Metadata?
先检查审核截图,再检查订阅组的显示名称,它看起来不是必填。然后检查价格、时长、至少一个国家或地区,以及 Business 里的付费 App 协议。每改一处,都要保存并刷新页面再下结论。
订阅需要截图吗?
需要,就是审核截图,叫 App Review Screenshot。它展示 App 里的购买界面,通常是付费墙,只给审核员看,不会显示在 App Store 上。别把它和 1024 x 1024 像素的推广图片搞混,推广图片只在推广购买项目或做赢回优惠时才用。
不发新版本能提交订阅吗?
第一个不行。第一个订阅和它的订阅组要和 App 的新版本一起提交。第一个订阅获批后,只要 App 有已获批的版本,后续的订阅就可以单独提交。
App 内购买项目的 Prepare for Submission 是什么意思?
这是 2026 年 7 月以来 Apple 帮助文档对尚未加入提交的产品使用的标签。即使缺元数据,它也会显示这个标签。App Store Connect API 仍然用 MISSING_METADATA 和 READY_TO_SUBMIT 区分这两种情况。
为什么 RevenueCat 返回空的 offering?
因为 App Store 没有向 iPhone 返回任何产品。最常见的原因:元数据不全、付费 App 协议未生效、产品标识符不一致,或者最近的修改还没同步。你的付费墙必须能处理这种情况,不能把用户卡住。

