Flutter中使用in_app_purchase获取App Store分地区商品价格异常排查
解决Flutter in_app_purchase地区定价不生效的问题
针对你遇到的地区定价显示错误问题,以下是几个关键排查和解决步骤:
优先使用真机测试,而非模拟器
iOS模拟器的App Store模拟环境存在局限性,部分地区定价逻辑无法在模拟器中正常触发,建议切换到iOS真机进行沙箱测试。确保沙箱测试账户地区与目标地区一致
定价显示是与Apple ID的地区绑定,而非设备系统地区。你需要在App Store Connect中创建印度地区的沙箱测试账户,然后在测试设备上登录该账户,而不是仅修改设备的系统地区设置。清除App Store缓存与模拟器数据
- 真机:进入「设置」->「App Store」,退出当前登录的Apple ID,重启设备后再登录印度地区的沙箱账户。
- 模拟器:通过Xcode菜单栏选择「Hardware」->「Erase All Content and Settings」,重置模拟器后重新配置测试环境。
验证App Store Connect的定价配置
再次确认目标商品在App Store Connect中:- 已为印度地区单独设置了印度卢比定价,且状态为「活跃」
- 定价设置已保存并同步到App Store服务器(通常需要1-2小时生效,若刚修改需等待)
代码层面验证地区信息
可以在打印价格时同时输出价格地区信息,帮助定位问题:final ProductDetailsResponse response = await _iap.queryProductDetails(ids); for (var product in response.productDetails) { print('Product: ${product.title}, Price: ${product.price}, Locale: ${product.priceLocale}'); }如果
priceLocale显示的不是印度地区(如en_US),说明请求时使用的账户地区仍为美国,需要检查沙箱账户的登录状态。
内容的提问来源于stack exchange,提问作者luminous
相关产品推荐
相关产品推荐

