# Missing Metadata 订阅卡住：App Store Connect 解决方法

> Missing Metadata 表示缺了必填项。依次检查语言、价格、时长、国家、审核截图和付费协议，再把订阅附加到一个版本。

原始页面：[Missing Metadata 订阅卡住：App Store Connect 解决方法](https://devoria.fr/zh-hans/blog/missing-metadata-app-store-connect-subscription)
作者：[Mehdi Azizi](https://devoria.fr/zh-hans/mehdi-azizi)
发布：2026-11-04
内容最后修订：2026-11-04


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 版本说明](https://developer.apple.com/help/app-store-connect/release-notes/)在 7 月 15 日宣布了新的提交方式：每个 App 内购买项目都在自己的页面里通过 Add for Review 提交。[状态说明页](https://developer.apple.com/help/app-store-connect/reference/in-app-purchases-and-subscriptions/in-app-purchase-statuses/)里已经没有“Missing Metadata”了。它从“Prepare for Submission”开始，并注明：如果你的 App 内购买项目缺少必填元数据，先补全，再加入提交。[RevenueCat 文档](https://www.revenuecat.com/docs/offerings/troubleshooting-offerings)也证实：审核前，新产品会显示为“Prepare for Submission”，即使它还缺元数据。

而 [App Store Connect API](https://developer.apple.com/documentation/appstoreconnectapi/subscription/attributes-data.dictionary) 仍然返回 `MISSING_METADATA`，然后是 `READY_TO_SUBMIT`。所以基于 API 的工具还会显示这些词。**不管标签叫什么，诊断都一样：有个必填字段是空的。**

## 按顺序检查这些原因

我按这个顺序检查，从产品页面一直查到账户。

| 原因               | 在哪里修改         |
| ------------------ | ------------------ |
| 名称或描述为空     | 产品页面           |
| 订阅组没有显示名称 | 订阅组页面         |
| 缺少价格或时长     | 产品页面           |
| 没有可用国家或地区 | Availability       |
| 缺少审核截图       | Review Information |
| 付费协议未生效     | Business           |
| 第一个订阅单独提交 | 提交               |

**1. 产品的语言。** 根据 [App 内购买项目信息说明](https://developer.apple.com/help/app-store-connect/reference/in-app-purchases-and-subscriptions/in-app-purchase-information/)，显示名称和描述至少要有一种语言是必填的。名称 2 到 30 个字符，描述最多 45 个字符。没有语言的产品提交不了。

**2. 订阅组的语言。** 订阅组也有显示名称，订阅者在 iPhone 上管理订阅时会看到。它在订阅组页面的 Display Name and Description 部分添加，见 [Apple 关于订阅的说明页](https://developer.apple.com/help/app-store-connect/manage-subscriptions/offer-auto-renewable-subscriptions/)。这个字段看起来不是必填。但有位开发者在 [Apple 论坛](https://developer.apple.com/forums/thread/778561)上说，只要它是空的，他订阅组里的所有订阅都卡着。状态显示在订阅上，而不是订阅组上，所以容易搞混。

**3. 价格和时长。** 订阅需要一个时长（一周到一年）和一个价格。产品加载不出来时，技术说明 [TN3186](https://developer.apple.com/documentation/technotes/tn3186-troubleshooting-in-app-purchases-availability-in-the-sandbox) 第一步就是检查它的标识符、价格和语言。还要记住：提交审核后，时长就不能再改了。

**4. 可用性。** 在 Availability 里至少选一个国家或地区。Apple 说明，没有设置可用性，就不会出现“Approved”状态。

**5. 审核截图。** 这就是我在 TradaZen 上遇到的情况，也是论坛上很常见的原因。“App Review Screenshot”展示的是购买项目在 App 里的样子，通常就是你的付费墙。它只给审核员看，永远不会显示在 App Store 上。它的格式和你的 [App Store 截图](https://devoria.fr/zh-hans/blog/app-store-screenshot-sizes-2026)一样。上传后可以替换，但不能删除。

别把它和 1024 x 1024 像素的推广图片搞混。推广图片只在你要在产品页推广这个购买项目，或者创建赢回优惠时才用得上，而且有它自己的规则。我是被拒过一次才知道的，见[订阅推广图片](https://devoria.fr/zh-hans/blog/guideline-2-3-2-subscription-promotional-image-rejected)。

**6. 付费 App 协议。** 要提供 App 内购买项目，账户持有人必须在 Business 里[签署 Paid Apps Agreement](https://developer.apple.com/help/app-store-connect/manage-agreements/sign-and-update-agreements/)，然后填写银行和税务信息。这不是产品的字段，但一切都依赖它。Apple 写明，在接受最新版协议之前，你不能创建新的 App 内购买项目。它关于[为审核配置 App 内购买项目](https://developer.apple.com/help/app-review/before-submitting-for-review/configure-in-app-purchases/)的页面还补充：协议未生效时，付费购买在审核中无法使用。在 Business 里，协议、银行账户和税务表格都必须处于生效状态。这些步骤在 [Apple 开发者账户](https://devoria.fr/zh-hans/blog/apple-developer-account-price-free-or-99)指南里有详细说明。

**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 内购买项目的提交流程](https://developer.apple.com/help/app-store-connect/manage-submissions-to-app-review/submit-an-in-app-purchase/)，你要选择平台、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 审核时间](https://devoria.fr/zh-hans/blog/app-store-review-time-how-long)指南里讲了多走这一轮要多花几天。

## 和 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 订阅](https://devoria.fr/zh-hans/blog/revenuecat-ios-in-app-subscription-setup)指南里，显示上的坑见[付费墙常见错误](https://devoria.fr/zh-hans/blog/ios-paywall-beginner-mistakes)。产品准备好后，还要确认你的付费墙符合 [guideline 3.1.2](https://devoria.fr/zh-hans/blog/guideline-3-1-2-subscription-rejection-paywall)。

## 接好订阅，不用花上一整周

[iOS & Android Kit](https://devoria.fr/zh-hans/kits/ios) 基于我自己 App 的起始代码：引导页、付费墙和订阅都已经写好，第三步“接入收入”会带你完成配置。从 App Store Connect 产品到购买验证的整条链路，都在 [iOS App 内订阅](https://devoria.fr/zh-hans/expertise/ios-in-app-subscription)页面里。

如果你在准备第一次上架，[做一下免费诊断](https://devoria.fr/zh-hans/diagnostic)：它会帮你理清步骤顺序，还会把我的防 Apple 拒审清单发给你。如果这些都做了订阅还是卡着，[预约我一小时](https://devoria.fr/zh-hans/coaching)：我们一起打开你的 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 协议未生效、产品标识符不一致，或者最近的修改还没同步。你的付费墙必须能处理这种情况，不能把用户卡住。


## 你的项目

[iOS & Android Kit](https://devoria.fr/zh-hans/kits/ios)：用 Claude Code 打造你的 iPhone 和 Android 应用：我自己应用的起步代码、上架商店的完整流程，以及全部工具包。¥739。

[诊断：你离自己的 iPhone 应用还差什么](https://devoria.fr/zh-hans/diagnostic)：7 个问题，60 秒：看清真正阻碍你发布 iPhone 应用的原因，拿到你的 4 步路线和适合你的套件。
