cordova app签名上传Google Play apksigner签名

App签名
推荐先了解 Android中APK签名工具之jarsigner和apksigner详解,这篇是我看了众多介绍签名里边说的最清楚的 https://www.cnblogs.com/slysky/p/9780015.html

记录完成签名的步骤

生成release版的apk

//如果用cordova 
cordova  build  --release  android
//如果是flutter, 按照新要求,需要上传aab包
flutter build appbundle

将apk拷贝到build-tools/2x.x.x目录下4字节对齐优化

 2.  zipalign  -v  4  android-release-unsigned.apk  release-unsigned.apk

生成密钥库
Java 密钥库(.jks 或 .keystore)是用作证书和私钥的存储库的二进制文件

	// -keyalg默认会使用DSA加密算法,谷歌要求用RSA,此处需要指定RSA  -keyalg RSA 
    // -validity要求有效时间大于25年 -validity  36500 指定100年
    //  -keysize  (推荐)4096,至少要为2048
    3. keytool  -genkeypair  -keystore  debug.keystore  -alias  release  -keysize 4096 -keyalg RSA -validity  36500

按实际信息填写。
debug.keystore文件只用生成一次,后续App更新继续用上次生成的debug.keystore文件,妥善保存,否则重新生成可能会因为签名不一致,无法在Google Play更新
上一步生成的 debug.keystore文件拷贝到build-tools目录, 谷歌用apksigner,低版本的build-tools没有,28及以上才有,我的环境是 \build-tools\28.0.3

用apksigner签名apk

  1. apksigner sign --ks debug.keystore --ks-key-alias release release-unsigned.apk
    //如果密钥库只有一个密钥对
    apksigner sign --ks debug.keystore release-unsigned.apk

用Jarsigner签名abb

Google Play上架应用需要上传AAB格式,当加固过后需要对AAB格式文件进行签名

jarsigner -verbose -keystore 签名文件 -digestalg SHA-256 -sigalg SHA256withRSA -storepass 签名密码 -keypass 别名密码 aab文件 keystore中的别名 -tsa http://timestamp.digicert.com
例如: jarsigner -verbose -keystore debug.keystore -digestalg SHA-256 -sigalg SHA256withRSA -storepass linchr -keypass linchr app-release.aab release -tsa http://timestamp.digicert.com

加上参数 -digestalg SHA-256 -sigalg SHA256withRSA,才能被Google Play识别。
问题1
jarsigner 错误:

java.lang.IllegalArgumentException: key algorithm not compatible with signature algorithm

查看debug.keystore用的签名算法

keytool -list -v -keystore debug.keystore

在这里插入图片描述

问题2
jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 7240 but got 7382 bytes)
解决方案: 说明待签的(aab)apk是已经签名过的,如果想重新签名的话可以把要重签名的aab(apk)后缀改成zip,打开后删除里面的META-INF目录,然后重新改成(aab)apk后缀。
成功签名
在这里插入图片描述
问题3
您的 Android App Bundle 所使用的上传证书的密钥强度太低
在这里插入图片描述
您的 Android App Bundle 所使用的上传证书的密钥强度太低。 上文提到了,解决方法是在上面步骤中生成密钥库使用-keysize 4096
key说明
参考官方文档https://support.google.com/googleplay/android-developer/answer/9842756?hl=en-GB&visit_id=637823029693292460-3874495408&rd=1

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值