You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter in_app_purchase插件iOS端:模拟器正常真机异常问题排查

iOS内购queryProductDetails实体设备返回空的常见原因
  • 商品ID与App Store Connect配置不匹配
    代码里的productIds必须和App Store Connect中创建的内购商品ID完全一致,大小写、特殊字符都不能错。模拟器依赖本地StoreKit文件可能会宽松匹配,但真实设备和TestFlight环境会严格校验。另外要确认商品状态是「准备提交」或「已批准」,未通过审核的商品无法在真实环境被查询到。

  • StoreKit.storekit文件配置问题
    即便同步了StoreKit文件,也要核对文件内的商品ID和App Store Connect的完全一致,有没有遗漏或拼写错误。同时检查Xcode中该文件的目标成员资格是否勾选了当前主App的target,没勾选的话真实环境无法读取这份配置。

  • 签名与权限配置问题
    实体设备和TestFlight使用的签名文件(Provisioning Profile)必须关联开启了「In-App Purchase」功能的App ID。可以在Apple开发者后台确认App ID的内购权限是否开启,以及签名文件是否包含该权限。

  • 插件版本或初始化问题
    虽然用的是in_app_purchase: ^3.1.7,但建议尝试更新到最新稳定版,旧版本可能存在真实环境的适配bug。另外要确保调用queryProductDetails前,_inAppPurchase已经完成初始化,并且正确监听了productStream等状态流。

  • App Store Connect服务器延迟
    刚创建或修改内购商品后,服务器可能需要1-2小时的同步时间,模拟器用本地文件即时生效,但真实环境要等服务器同步完成才能查询到商品。

  • 地区限制冲突
    检查设备上的Apple ID所在地区,是否和内购商品设置的可用地区一致。如果商品只在特定地区上架,其他地区的设备无法查询到对应商品。

  • 沙盒测试账号问题
    TestFlight和实体设备测试内购必须使用App Store Connect创建的沙盒测试账号,普通Apple ID无法访问沙盒内购资源。同时要确认测试账号没有被禁用,且地区符合商品的地区限制。

内容的提问来源于stack exchange,提问作者Maxim Suponya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 03:03:15