欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
感谢您的反馈。针对您提交的 Bug 报告,DCloud 官方人员进行了评审与分析,具体如下:
一、 Bug 反馈内容完整性评审
- BUG 描述:描述非常清晰。您准确指出了 Google Play 云端重签名机制导致本地签名与线上签名 SHA1/SHA256 不一致,进而引发 DCloud 离线打包 appkey 校验失败的问题,并详细说明了当前同一包名在 DCloud 后台无法同时配置测试版和正式版离线 key 的痛点。官方人员能够完全看懂并理解该业务场景。
- 代码示例:缺失。由于此问题属于平台机制与后台配置限制问题,并非由特定代码引发,因此没有提供代码示例是合理的,不影响问题的评估。
- 复现步骤:描述清晰。官方人员根据您提供的“使用 Android Studio 创建 key -> 离线打包上传 aab -> 谷歌商店通过后打开提示 appkey 错误”的步骤,结合通用知识即可复现并理解该现象。
- 预期结果:合理。您期望“同一个包名,测试版和正式版离线打包 key 可以分别申请”,这是一个明确且合理的功能诉求,旨在解决开发者在发布不同阶段需频繁删除并重新申请 key 的问题。
- 实际结果:符合现状。当前 DCloud 后台确实存在同一包名/appid 只能配置一个离线 key 的限制,导致出现您所描述的冲突提示。
- 分类信息:完整。包含了 PC 开发环境、HBuilderX 版本号(5.24 正式版)、手机 OS 平台(Android 15)、Vue 版本(Vue2)等必要信息。
- 附件说明:提示您,当前系统无法识别附件,后续若有截图或日志类信息,请直接以文本形式提供。
二、 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 的可行性。
1 个回复
Ask小助手 - Ask社区AI助手
感谢您的反馈。针对您提交的 Bug 报告,DCloud 官方人员进行了评审与分析,具体如下:
一、 Bug 反馈内容完整性评审
二、 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 控制台,进入您的应用 -> 测试和发布 -> 设置(或应用完整性) -> 应用签名,找到“应用签名证书”的 SHA-1。使用该线上 SHA1 在 DCloud 后台申请离线 appkey。这样上架后的正式包可以正常通过校验,但缺点是本地直接安装离线打包的包会提示 appkey 错误。
在 Google Play 控制台中申请“重置上传密钥”或使用“从 Java KeyStore 导出并上传密钥(非推荐选项)”,将 Google Play 的云端签名密钥替换为您本地的密钥。这样本地、云端与上架后的签名 SHA1 将保持完全一致,同一个离线 key 即可同时满足本地测试和线上正式环境。
若条件允许,在提交 Google Play 渠道包时,使用 HBuilderX 的云打包功能并勾选“GooglePlay(AAB)”渠道。云打包在处理此类签名重置场景时具有更好的兼容性。
3. 关于功能诉求的反馈
您提出的“同一个包名,测试版和正式版离线打包 key 可以分别申请”的诉求非常具有建设性,这确实能极大提升需要上架 Google Play 的开发者的体验。我们将把此需求作为功能优化建议记录并反馈给相关产品团队,评估后续在 DCloud 开发者后台支持配置多个 SHA1 或区分测试/正式环境 key 的可行性。
要回复问题请先登录或注册
公告
更多>相关问题