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

启用Google Play应用签名的应用,如何用Android Studio本地调试Google Play Billing库?

问题解答

不是无法测试Google Play Billing库,核心原因是本地运行的应用签名与Google Play商店分发版本的签名不匹配,导致Billing服务验证失败。

问题根源

启用Google Play应用签名后,Play商店会用它生成的「应用签名密钥」重新签名你上传的安装包,最终用户下载的是用这个密钥签名的版本;而你在Android Studio本地运行(无论Debug/Release模式)时,使用的是自己的「上传密钥」或「Debug密钥」,这两类签名与Play商店的应用签名密钥不一致,Billing服务会判定当前应用未配置正确的计费权限,从而抛出错误。

解决方法

1. 保留测试渠道测试(已验证可行)

继续使用内部测试/封闭测试渠道的安装包进行测试,这类包是经过Play商店重新签名的,与Billing服务要求的签名一致,能正常调用内购功能。

2. 本地构建使用应用签名密钥签名(适合Release模式测试)

如果需要在本地直接运行Release包测试内购,可按以下步骤操作:

  • 从Play控制台导出应用签名证书:进入「应用完整性」→「应用签名证书」,点击「导出证书」下载.der格式的证书文件
  • 将.der证书转换为密钥库文件:使用keytool命令(JDK自带工具)转换为.jks格式,示例命令:
    keytool -importcert -file app-signing-cert.der -keystore app-signing-keystore.jks
    
    按提示设置密钥库密码,默认密钥别名为importedkey
  • 在Module的build.gradle中配置Release构建类型使用该密钥库:
    android {
        signingConfigs {
            release {
                storeFile file("app-signing-keystore.jks")
                storePassword "你的密钥库密码"
                keyAlias "importedkey"
                keyPassword "你的密钥密码"
            }
        }
        buildTypes {
            release {
                signingConfig signingConfigs.release
                // 其他构建配置
            }
        }
    }
    

    注意:应用签名密钥属于敏感信息,请勿提交至版本控制系统(如Git)

3. Debug模式测试方案

Debug模式默认使用Android Studio自带的debug.keystore签名,与Play签名不匹配,推荐两种测试方式:

  • 使用Billing Library的测试商品ID进行静态测试,比如android.test.purchased、android.test.canceled等,这类测试无需依赖Play商店的签名验证
  • 若需测试真实商品,可将Debug密钥的SHA1值添加到Play控制台的「应用完整性」→「应用签名证书」页面的「关联的证书」中,或直接配置Debug构建类型使用应用签名密钥(不推荐,密钥敏感)

额外检查项

  • 确保Play控制台内的应用内商品状态为「活跃」,且已发布至对应测试渠道
  • 确认测试账号已添加到Play控制台的「许可测试」列表中,避免因账号权限问题导致报错

内容的提问来源于stack exchange,提问作者Or Bardugo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:15:31