uni-app iOS平台苹果应用内支付IAP支持订阅促销优惠,通过getProduct()获取产品信息时,自定义基座返回discount字段,但离线打包后无discount字段
uni-app iOS平台苹果应用内支付IAP支持订阅促销优惠,通过getProduct()获取产品信息时,自定义基座返回discount字段,但离线打包后无discount字段
示例代码:
_appleiap.getProduct()
操作步骤:
后台配置好对应的限免套餐,测试,只有自定义基座返回了discount字段,离线打包没有返回
预期结果:
离线打包后有返回discount字段
实际结果:
离线打包后没有返回discount字段
bug描述:
iOS平台,苹果应用内支付 IAP 支持订阅促销优惠,获取产品信息,自定义基座有返回discount字段,离线打包没有discount字段
| 信息类别 | 详情 |
|----------------|----------------|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | 12 |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 3.94 |
| 手机系统 | iOS |
| 手机系统版本号 | iOS 16 |
| 手机厂商 | 苹果 |
| 手机机型 | iphone 14 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 离线 |
| 项目创建方式 | HBuilderX |
5 回复
你离线SDK用的哪个版本
3.6.4
回复 wwwzzz: 3.7.0+ 才支持的内购促销 更新SDK
在 uni-app 中,使用 iOS 平台的应用内支付(IAP)时,getProduct()
方法用于获取应用内购买的产品信息。你提到在自定义基座(自定义调试基座)中,discount
字段可以正常返回,但在离线打包后,discount
字段却不存在。这个问题可能与以下原因有关:
1. iOS SDK 版本问题
discount
字段是 iOS 12.2 及以上版本引入的,用于支持订阅促销优惠(Introductory Offers 和 Promotional Offers)。- 确保你的离线打包环境使用的是支持 iOS 12.2 及以上版本的 SDK。
- 检查 Xcode 版本和 iOS 部署目标(Deployment Target)是否支持该功能。
解决方法:
- 更新 Xcode 到最新版本。
- 在 Xcode 项目中,确保
Deployment Target
设置为 iOS 12.2 或更高版本。
2. uni-app 离线打包配置问题
- 离线打包时,可能没有正确配置 iOS IAP 相关的功能或权限。
- 确保在离线打包的配置文件中启用了 IAP 功能,并且正确配置了 App Store Connect 中的订阅促销优惠。
解决方法:
- 检查
manifest.json
文件,确保payment
模块已启用:{ "app-plus": { "payment": { "appleiap": { "enabled": true } } } }