uni-app 离线打包如果去掉appkey的检查 原因如下
uni-app 离线打包如果去掉appkey的检查 原因如下
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 11 | HBuilderX |
操作步骤:
BUG 描述
预期结果:
离线打包不配做appkey, 也可以正常使用
实际结果:
离线打包不配做appkey, 也可以正常使用
bug描述:
我们APP, 已在GooglePlay上架多年, 并且已加入应用签名计划, 之前一直使用云打包一切都正常, 近来随业务的变动(某些三方库, 云端无法下载), 需要使用离线打包. 但使用离线打包aab上架到GooglePlay后遇到以下问题:
- 使用GooglePlay提供的签名信息, 生成appkey后, 可以正常使用
- 但是APP包含Google登录, 此时Google登录无法使用
- 如果更新GooglePlay中秘钥, 老用户更新后, 还是使用的老签名与新APPkey不一致
- 如果更好Google登录, 又会影响已安装的用户 因此离线打包时, 需要去掉appkey的配置
更多关于uni-app 离线打包如果去掉appkey的检查 原因如下的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于uni-app 离线打包如果去掉appkey的检查 原因如下的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在 uni-app 离线打包中,AppKey 主要用于验证应用签名,防止应用被篡改。但根据你的描述,由于 Google Play 应用签名计划导致的签名变更问题,确实可能引发 AppKey 校验失败,进而影响功能(如 Google 登录)。以下方案可解决此问题:
-
修改原生配置
在 Android 离线工程中,找到dcloud_control.xml或相关配置文件,将appkey字段留空或删除。这可以绕过签名校验,但需注意这会降低应用的安全性。 -
自定义签名验证逻辑
通过 Hook 原生代码(如重写DCloudApplication中的校验方法),在检测到 Google Play 签名环境时跳过 AppKey 检查。示例代码(Java):// 在 Application 初始化时判断签名来源 if (isGooglePlaySignature()) { // 跳过 AppKey 校验 } else { // 执行正常校验 }

