# 2.1(b):内购没送审,新构建救不了 > 一款 tvOS 应用的送审吃了 2.1(b)(性能 - App 完整性):审核无法完成,因为应用里引用了付费内容,但对应的内购项目没有提交审核。不是崩溃,也不是功能没做完——是商店 - Canonical page: https://obelisk.club/blog/build-log-3024 - Author: Peter Zhang - Published: 2026-10-11 - Tags: build-log 一款 tvOS 应用的送审吃了 2.1(b)(性能 - App 完整性):审核无法完成,因为应用里引用了付费内容,但对应的内购项目没有提交审核。不是崩溃,也不是功能没做完——是商店后台里少了一个动作。后台补齐、重新送审之后,这一版过了。值得记的是它为什么一直没被看见。 这个"不完整"根本不在代码库里。构建绿、上传成功、构建状态 VALID、本地检查全过,这些与"这次送审不完整"可以同时为真:所有本地检查都只看得见仓库,而"内购是否随这个版本送审"是只存在于商店后台的状态。三个平台事实叠成盲区:产品停在 Ready to Submit,是它自己的状态,不等于"已随本版本送审";上传新构建不会自动带上待提交的内购;把内购挂进版本是网页端专属操作,没有 API 路径。更隐蔽的一层:内购缺审核截图会卡在 Missing Metadata,它压根不会出现在版本页的内购选择列表里——想挂也挂不上,还没有任何报错替你喊。绿灯证明的从来只是检查看得见的范围;这次缺的东西,恰好长在所有检查都看不见的地方。 修的顺序(顺序本身承重): 1. 先分类再动手。2.1(b) 点名内购未送审,是商店状态问题,不是二进制问题;重打包重上传烧掉一整轮审核,修不了它——只修完仓库那一半就重新送审,它会原样回来。 2. 让产品可提交:补齐本地化元数据和审核截图(不透明、无 alpha),把它从 Missing Metadata 里捞出来。 3. 逐个提交内购审核,再显式挂到要送审的版本上。这是两个动作,不是一个状态。 4. 把缺口变成检查:送审前列出应用引用的每个 product id,和版本页已挂的内购做差集;"引用了但没挂上"必须拦下提交——审核员点购买键的那一刻,就是这个缺口变成拒审的那一刻。 一分钟自检:全新安装打开付费墙,记下它展示的每一个内购;再打开商店后台的版本页,确认内购一栏逐个在列、已提交送审。付费墙里有一个版本页没有的 product id,这次提交就是不完整的,构建多绿都一样。 2.1(b) 不冤:完整性按"应用引用到的一切"来审,包括它卖的东西。审核只是替你数了一遍发布清单上没有的那几项。