Unity打包生成APK文件提交应用宝踩坑记录

公司的项目在提交应用宝时,遇到了如下的坑,特记录。

在公司提价APK文件至腾讯应用宝时,腾讯提示有如下错误:

暂时不支持APK Signature Scheme V2,请去掉该类型的签名后再上传。

查找资料发现安卓中的签名共有两种,V1和V2。V2是从Android 7.0新增的签名。由于项目使用Unity2017.1.1开发,默认使用V1和V2两种签名,这一设计是在Unity2017中添加的。直接降低版本是不现实的,Unity向下支持做的很差劲。于是四处查查找资料,最终采用了使用命令行的方式进行重新签名。

参考该文章进行了对项目APK包的重新签名,但是由于操作不当,引出了另一个新的坑。列出我当时的详细操作:

1.第一次接触安卓签名的东西,以为签名是要删除然后才可重新签名,查找资料后将APK包后缀名修改为zip,不解压直接删除包中的META-INF文件夹。(此处挖了第二个坑)

2.使用DOS窗口,进入JDK/bin文件夹下,使用签名命令为包体重新签名

jarsigner -keystore XXX.keystore -digestalg SHA1 -sigalg SHA1withRSA XXX.apk XXX

XXX.keystore为项目说用keystore,如果keystore文件不在JDK/bin文件夹内,此前应该加上keystore文件的路径。

XXX.apk同keystore一样,如果apk文件不在JDK/bin文件夹内,此前应该加上apk文件的路径。

XXX为keystore的别名。

就这么两步,验证发现包体中确实没有了V2版本的签名,也可正常安装到手机端,运行亦是正常。但是在上传应用宝时,反馈的错误信息是:

安装包解析失败,请检查后重新打包上传,具体报告如下:

aapt工具解析结果如下(错误码:11050401):

ERROR:dump failed because no AndroidManifest.xml found

这一错误正是由于第一步的操作引起的,打包好的APK包千万不要在随意修改(大神请忽略),需要重新签名直接重签即可。

此处分享一博文,详细介绍了给APK签名的两种方式:Android-APK签名工具-jarsigner和apksigner

你可能感兴趣的:(Android)