Xamarin Forms电子书应用非消耗型应用内购买功能实现问题咨询
iOS 非消耗型应用内购买常见问题解答
1. 差异化售价设置问题
- Apple 不允许在运行时调用购买接口传入自定义金额,所有非消耗型产品的定价必须提前在 App Store Connect 中完成配置,所有动态修改价格的操作都会被审核驳回。
- 你需要为每一个不同定价的电子书创建独立的 Non-Consumable 产品 ID,每个产品 ID 对应单独的价格层级配置。如果书籍数量较多,可以使用 App Store Connect 的批量导入功能批量创建 IAP 产品条目,无需手动逐个添加。
- 不同地区的差异化定价也可以在对应产品 ID 的配置页中单独设置各区域的价格层级。
2. Xamarin Forms 项目配置要求
- 推荐优先使用
Plugin.InAppBillingNuget 包实现跨平台 IAP 逻辑,无需单独适配双端原生接口。 - iOS 端专属配置:
- 在 Apple Developer 后台为对应 Bundle ID 开启 In-App Purchase 能力
- 打开 iOS 项目的
Entitlements.plist文件,勾选 In-App Purchase 权限 - 确保项目的 Bundle ID 与 App Store Connect 中配置的应用 ID 完全一致
- 通用逻辑要求:必须实现产品信息查询、购买流程发起、购买凭证校验(优先服务器端校验,避免本地校验被破解)、交易队列处理、非消耗品恢复购买功能,缺失恢复购买功能会被 Apple 直接拒审。
3. missing metadata 状态原因
- 未签署最新的《付费应用协议》确实是导致该状态的常见原因之一,你可以先进入 App Store Connect 的「协议、税务和银行」模块,确认最新的付费协议已经签署并生效,且税务、银行信息已经填写完成。
- 若协议已经完成签署,可检查对应 IAP 条目的必填元数据是否填写完整,包括本地化名称、产品描述、对应地区的价格层级、产品预览截图,所有必填项填写完成后状态会自动更新。
4. Apple 应用内购买抽成规则
- 基础抽成比例为30%,所有未加入小企业计划的开发者的每一笔非消耗型购买订单都会直接扣除30%的分成后结算。
- 若开发者过去12个月的应用总营收不足100万美元,可以申请加入 Apple 小企业计划,审核通过后所有订单的抽成比例降至15%,该优惠对所有生效期间的订单生效。
- 非消耗型产品不适用订阅产品的「订阅满1年抽成降至15%」的规则。
内容的提问来源于stack exchange,提问作者Sreejith Sree
相关产品推荐
相关产品推荐

