iOS应用内购审核遭拒:“This item is no longer available”问题排查求助
你好,这种沙盒测试正常但审核阶段报错的情况确实很棘手,结合你提到的iOS13.3.1设备测试场景,我整理了几个最可能的原因,你可以逐一排查:
正式环境内购产品状态未激活
沙盒环境的内购产品创建后即可测试,但正式环境的产品必须设置为「Ready to Submit」状态,且需与App一同提交审核(或提前完成单独审核)。如果你的内购产品仍处于「Draft」(草稿)状态,或提交后未通过审核,审核人员访问正式环境时会找不到对应产品,从而触发该错误。建议登录App Store Connect,检查对应内购项目的「状态」字段,确保它处于已就绪或已批准状态。iOS13.3.1的StoreKit兼容性问题
iOS13.3.1的StoreKit API与iOS14及以上版本存在差异,如果你的内购代码使用了仅高版本支持的API(比如SKPaymentQueue的异步回调优化、SKStoreProductViewController的新方法),在iOS13设备上可能会出现产品请求失败,进而提示商品不可用。建议找一台iOS13.3.1的设备,用正式环境测试账号(注意不是沙盒账号)模拟审核场景,查看控制台报错信息,定位是否存在API兼容问题。内购产品的地区限制不匹配
沙盒测试时你使用的是对应地区的账号,但审核人员通常使用美国区测试账号。如果你的内购产品在App Store Connect中设置的可用地区未包含美国,审核人员访问时就会看到商品不可用的提示。检查内购产品的「价格与可用性」设置,确认勾选了足够的地区(至少包含美国,或设置为全球可用)。产品ID的细微差异(别忽略细节)
虽然你说产品标识符与沙盒一致,但偶尔会出现大小写、拼写的细微错误——比如沙盒里是com.yourapp.premium_monthly,正式代码里写成com.yourapp.Premium_Monthly(大小写或下划线差异),或是多/少了一个字符。建议将代码中的产品ID与App Store Connect里正式产品的ID复制粘贴对比,确保完全一致。App Store服务器同步延迟
正式环境的内购产品信息同步到全球服务器需要一定时间,尤其是你刚修改完产品设置就提交App审核的情况。这种情况下,审核人员访问时服务器还未同步最新的产品信息,就会报错。你可以尝试在App Store Connect中重新保存一次内购产品的设置,等待1-2小时后重新提交审核。内购产品类型或配置不匹配
比如你在沙盒测试的是「非消耗型」产品,但正式环境中误设置成了「消耗型」;或是价格层级设置错误,导致在某些地区无法显示。检查App Store Connect中正式产品的类型、价格、描述等配置,确保与沙盒测试时的设置完全一致。
内容的提问来源于stack exchange,提问作者Asad Ali Choudhry




