uni-app 安卓云打包签名不一致
uni-app 安卓云打包签名不一致
操作步骤:
- 正常打包
预期结果:
- 微信登录正常授权
实际结果:
- 微信登录并未正确授权,一直提示签名不一致
bug描述:
- 老的包是可以正常使用的,就新版本的包 apk签名不正确,
- uni.login调微信,返回-100, “errMsg”: “login:fail send”,
{ "errMsg": "login:fail send", "errCode": -100, "code": -100, "innerCode": -6 }
项目信息
信息类别 | 内容 |
---|---|
产品分类 | uniapp/App |
PC开发环境 | Windows |
PC开发环境版本 | 111 |
HBuilderX类型 | 正式 |
HBuilderX版本 | 3.99 |
手机系统 | Android |
手机系统版本 | Android 11 |
手机厂商 | 华为 |
手机机型 | vivo |
页面类型 | vue |
vue版本 | vue2 |
打包方式 | 云端 |
项目创建方式 | HBuilderX |
5 回复
换证书了吧
没有,keystore文件用的都是一样的,但是打出来的包,签名和线上就是不一样的
@DCloud_heavensoft 大佬看下
和上面是一个问题,同样的证书文件,打包后md5不一样,andriod 用 genSinature 读取,md5 和线上不一样(微信和线上的包md5是一样的)。而ios是正常的
@DCloud_UNI_HRK 大佬看下呢
在使用 uni-app 进行安卓云打包时,如果出现签名不一致的问题,通常是由于以下几个原因导致的。下面我将详细解释可能的原因及解决方法:
1. 未使用相同的签名文件
在云打包时,如果你没有上传相同的签名文件(.jks
或 .keystore
),每次打包都会生成一个新的默认签名文件,导致签名不一致。
解决方法:
- 在云打包时,手动上传相同的签名文件。
- 在 HBuilderX 中,点击发行 -> 原生App-云打包,勾选使用自有证书,然后上传你的
.jks
或.keystore
文件,并填写对应的别名(alias)、密码等信息。
2. 本地调试和云打包的签名不同
如果你在本地调试时使用的是调试签名(debug keystore),而在云打包时使用的是发布签名(release keystore),会导致签名不一致。
解决方法:
- 确保本地调试和云打包时使用相同的签名文件。
- 如果需要调试,可以在云打包时上传调试签名文件。
3. 签名文件信息填写错误
在上传签名文件时,如果别名(alias)、密码等信息填写错误,会导致签名失败或不一致。
解决方法:
- 检查签名文件的别名、密码等信息是否填写正确。
- 可以通过以下命令查看签名文件的信息:
keytool -list -v -keystore your_keystore_file.jks
4. 未保存签名文件
如果你没有保存签名文件,每次打包时都会生成一个新的默认签名文件。
解决方法:
- 生成签名文件后,务必保存好,并在后续打包时使用相同的文件。
- 可以使用以下命令生成签名文件:
keytool -genkey -alias your_alias -keyalg RSA -keysize 2048 -validity 36500 -keystore your_keystore_file.jks