iPhone专属App在iPad兼容模式下内购产品无法获取的问题求助
问题:iPhone专属App在iPad兼容模式下无法获取内购产品导致审核被拒
问题背景
原本使用Revenue Cat实现内购功能一切正常,却因订阅无法加载被App Store审核拒绝,此前该版本曾因付费墙措辞问题被拒。排查发现:TestFlight环境中无法获取内购产品,仅在Xcode使用Store Kit配置文件调试时能正常显示。
已尝试以下通用解决方案但均无效:
- 确认App Store Connect所有协议已激活
- 校验Xcode、Revenue Cat与App Store Connect中的应用ID、内购ID完全匹配
- 确认Store Kit配置文件与App Store Connect后台同步正常
- 移除Revenue Cat依赖,直接调用Store Kit API,无配置文件环境下产品数组为空
- 检查内购订阅状态均为「待审核」(与付费墙正常运行时状态一致)
问题根源定位
经进一步排查,问题出在应用为iPhone专属非通用App:在iPad兼容模式下,Store Kit无法获取内购产品,而审核人员使用iPad测试导致被拒(iPhone端运行完全正常)。替换为直接调用Store Kit API后,iPad端出现如下错误日志:
Received error that does not have a corresponding StoreKit Error: Error Domain=ASDErrorDomain Code=500 "(null)" UserInfo={NSUnderlyingError=0x3032769d0 {Error Domain=AMSErrorDomain Code=301 "Invalid Status Code" UserInfo={NSLocalizedDescription=Invalid Status Code, AMSURL=https://amp-api.sandbox.apple.com/v1/catalog/gb/in-apps?additionalPlatforms=iphone&extend=kind&filter%5BappBundleId%5D=io.houseofmars.Pearla&filter%5BsubscriptionFamilyId%5D=21448567&l=en-GB&omit%5Bresource%5D=autos&platform=ipad&with=adHocOffers, AMSStatusCode=400, AMSServerPayload={ errors = ( { code = 40004; detail = "Parameter 'additionalPlatforms' is not allowed"; id = 25T7JY2SONEPRPL5BY55CRBAGE; source = { parameter = additionalPlatforms; }; status = 400; title = "Invalid Parameter"; } ); }, NSLocalizedFailureReason=Response status code is: 400}}}
临时开启iPad支持后,错误消失,但应用未适配iPad屏幕,无法长期启用该设置;同时无法阻止iPad以兼容模式运行应用,导致审核再次被拒。
当前解决结果(更新2)
目前无完美技术解决方案,经与苹果审核团队沟通说明情况后,应用最终获得批准。
重要提示
- iPhone专属App可被iPad用户下载,但在iPad兼容模式下无法正常获取内购产品/订阅
- 截至2024年3月,无可靠方法检测设备是否处于iPad上的iPhone模拟模式
内容的提问来源于stack exchange,提问作者guycas
相关产品推荐
相关产品推荐

