2***@gmail.com
2***@gmail.com
  • 发布:2026-08-15 17:16
  • 更新:2026-08-15 17:17
  • 阅读:30

【报Bug】谷歌应用商店上线后app提示离线打包appkey未配置

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 22

HBuilderX类型: 正式

HBuilderX版本号: 5.24

手机系统: Android

手机系统版本号: Android 15

手机机型: 安卓

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

本地signingConfigs配置的密钥的SHA1和SHA256指纹密钥与谷歌成功上架后安装的app的指纹密钥不匹配

  1. 使用AndroidStudio随意创建key。离线打包后上传aab到谷歌商店
    2 谷歌商店通过后打开aab提示appkey错误或未配置

预期结果:

同一个包名,测试版和正式版离线打包key可以分别申请

实际结果:

当前申请了正式版本,就申请不了测试版本,提示此包名/appid/域名已添加过,不能重复添加

bug描述:

uni-app离线打包上架到谷歌应用商店

Google 收到你上传的包并验证通过后,会在云端剥离你本地的签名,根据用户的手机型号切分成不同的子 APK(Split APKs),然后用 Google Play 云端保管的 应用签名密钥(App Signing Key) 重新签名,最后下载到用户手机上。

那么我本地使用的密钥证书申请的离线打包key是兼容不到线上的

但是DCloud后台中,在各平台信息中,同一个包名却只能创建一个离线key,导致一个app包发布一个版本就需要删除一下离线打包key然后重新申请,并且本地测试也需要同样的操作

2026-08-15 17:16 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

感谢您的反馈。针对您提交的 Bug 报告,DCloud 官方人员进行了评审与分析,具体如下:

一、 Bug 反馈内容完整性评审

  1. BUG 描述:描述非常清晰。您准确指出了 Google Play 云端重签名机制导致本地签名与线上签名 SHA1/SHA256 不一致,进而引发 DCloud 离线打包 appkey 校验失败的问题,并详细说明了当前同一包名在 DCloud 后台无法同时配置测试版和正式版离线 key 的痛点。官方人员能够完全看懂并理解该业务场景。
  2. 代码示例:缺失。由于此问题属于平台机制与后台配置限制问题,并非由特定代码引发,因此没有提供代码示例是合理的,不影响问题的评估。
  3. 复现步骤:描述清晰。官方人员根据您提供的“使用 Android Studio 创建 key -> 离线打包上传 aab -> 谷歌商店通过后打开提示 appkey 错误”的步骤,结合通用知识即可复现并理解该现象。
  4. 预期结果:合理。您期望“同一个包名,测试版和正式版离线打包 key 可以分别申请”,这是一个明确且合理的功能诉求,旨在解决开发者在发布不同阶段需频繁删除并重新申请 key 的问题。
  5. 实际结果:符合现状。当前 DCloud 后台确实存在同一包名/appid 只能配置一个离线 key 的限制,导致出现您所描述的冲突提示。
  6. 分类信息:完整。包含了 PC 开发环境、HBuilderX 版本号(5.24 正式版)、手机 OS 平台(Android 15)、Vue 版本(Vue2)等必要信息。
  7. 附件说明:提示您,当前系统无法识别附件,后续若有截图或日志类信息,请直接以文本形式提供。

二、 Bug 是否成立及分析

1. 问题成立性分析
该 Bug 反馈成立。根据 DCloud 官方文档说明,App 离线打包 appkey 的校验机制要求 appid + 应用包名 + 签名 SHA1 三者必须与申请填写的信息完全一致(参考 appkey 常见问题)。

由于 Google Play 默认启用了“应用签名密钥(App Signing Key)”机制,会对您上传的 aab 包进行剥离和云端重新签名,导致最终用户下载安装的 APK 签名指纹与您本地离线打包使用的密钥指纹不一致,从而触发 SDK 内部的 appkey 校验失败。官方文档的注意事项中也明确提到了:“上架 google play 时不建议更新签名密钥,更新之后会导致部分设备 appkey 校验失败”(参考 appkey 配置注意事项)。

2. 当前替代方案与建议
针对当前 DCloud 后台暂不支持同一包名配置多个离线 key 的限制,在官方进行功能升级前,您可以参考以下方案处理:

  • 方案一:使用 Google Play 线上的 SHA1 申请离线 key
    登录 Google Play 控制台,进入您的应用 -> 测试和发布 -> 设置(或应用完整性) -> 应用签名,找到“应用签名证书”的 SHA-1。使用该线上 SHA1 在 DCloud 后台申请离线 appkey。这样上架后的正式包可以正常通过校验,但缺点是本地直接安装离线打包的包会提示 appkey 错误。
  • 方案二:申请升级 Google Play 签名密钥
    在 Google Play 控制台中申请“重置上传密钥”或使用“从 Java KeyStore 导出并上传密钥(非推荐选项)”,将 Google Play 的云端签名密钥替换为您本地的密钥。这样本地、云端与上架后的签名 SHA1 将保持完全一致,同一个离线 key 即可同时满足本地测试和线上正式环境。
  • 方案三:使用云打包
    若条件允许,在提交 Google Play 渠道包时,使用 HBuilderX 的云打包功能并勾选“GooglePlay(AAB)”渠道。云打包在处理此类签名重置场景时具有更好的兼容性。

3. 关于功能诉求的反馈
您提出的“同一个包名,测试版和正式版离线打包 key 可以分别申请”的诉求非常具有建设性,这确实能极大提升需要上架 Google Play 的开发者的体验。我们将把此需求作为功能优化建议记录并反馈给相关产品团队,评估后续在 DCloud 开发者后台支持配置多个 SHA1 或区分测试/正式环境 key 的可行性。

内容为 AI 生成,仅供参考

要回复问题请先登录注册