Unity IAP 4.12.2初始化失败(GoogleBillingResponseCode: FeatureNotSupported)求助
问题概述与解决方案
问题背景
此前使用Unity IAP 4.11.0及更早版本时功能正常,因谷歌要求2024年8月底前必须使用Google Billing SDK 6及以上版本,升级至IAP 4.12.2后,初始化始终失败,报错GoogleBillingResponseCode: FeatureNotSupported。
升级操作步骤:
- Unity Package Manager中无4.12.2版本,通过文档链接安装该版本
- 升级后Project Settings的应用内购买中Google Play密钥被清空,已重新填入并点击「Obfuscate License Keys」
- 删除了重复的旧Google Play Tangle文件
解决方法
1. 确认Google Billing SDK版本适配
Unity IAP 4.12.x默认集成Billing SDK 6.x,需排查依赖冲突:
- 打开
Assets/Plugins/Android目录,确认billing-*.aar文件版本为6.x,若存在旧版本aar直接删除 - 检查项目
gradle.properties,确保未强制指定旧版本Billing SDK依赖
2. 排查测试环境兼容性
FeatureNotSupported常见环境问题:
- 测试设备Google Play服务版本过低:前往Google Play商店更新至最新版
- 模拟器未配置Google Play:必须使用带Google Play服务的官方模拟器镜像(如Pixel系列)
- 地区限制:切换至Google Play支持的地区(如美国)测试
3. 重新验证密钥与混淆配置
- 先取消「Obfuscate License Keys」,用明文密钥测试初始化是否成功,成功后再重新启用混淆
- 核对Google Play控制台复制的公钥,确保无多余空格、换行符
- 检查
Project Settings > Player > Android > Publishing Settings的自定义Manifest,确认包含权限:<uses-permission android:name="com.android.vending.BILLING" />
4. 清理缓存并重构项目
- 执行
File > Build Settings > Clean Build清理构建缓存 - 删除
Library、Temp目录,重启Unity后重新导入IAP包 - 重新构建APK/AAB,确保构建过程无报错
5. 检查初始化代码
确保代码适配IAP 4.12.x规范,添加日志排查细节:
Purchasing.Initialize(processor, builder, result => { if (!result) { Debug.LogError($"初始化失败: {Purchasing.ExtendedError}"); } });
内容的提问来源于stack exchange,提问作者ArtS
相关产品推荐
相关产品推荐

