如果对App bundle包内的文件做了修改,或者增删文件,就需要重新签名才能在google play提交上架,不然会出现如下图的报错。
网上搜了一圈,并没有找到可对aab包签名的工具。
apk包签名google提供了现成的工具apksigner.jar,这个jar包并不能对aab包签名。如果把aab包当成apk,用这个工具来签名,会出现如下图的报错:
这个apksigner.jar应该是会去识别apk里面的目录结构,非apk结构的包不能做签名。
尝试使用jarsigner的签名方式,使用方法如下:
jarsigner -digestalg SHA1 -sigalg MD5withRSA -keystore android.keystore -storepass android -signedjar enhanced_sign.apk enhanced.apk android.keystore
使用上面的命令行对apk签名是正常的,也可以安装。
使用该命令行对aab包进行签名,签名提示成功了,但是将签名后的包提交到google play,会有如下的报错:
看来此方法对aab包的签名,google play不认。
尝试使用不同的签名参数进行签名,然后对签名后的mf文件进行比对,最后终于成功找到可以让google play验证通过的aab包签名方式。
将该方法封装成了一个签名工具,可访问此页面下载。
使用方法,先把签名信息在config.ini文件里做类似如下的设置:
然后运行如下命令行:
java -jar FairGuard.jar -optype_sign_jar -inputfile %inputfile.aab%
命令行执行后如下图界面所示:
使用此工具签名后的aab包即可正常提交到google play