阅读 151

Android签名的一些常见操作和问题汇总

文章目录

如何查看签名信息

已有签名文件时

在签名文件所在文件夹打开cmd

输入以下命令即可查看签名信息内容

keytool -v -list -keystore MyAppKey.jks
复制代码

默认的签名文件是 debug.keystore,位置在 $HOME/.android/debug.keystore,使用上面的命令时,让你输入密码,默认的可以直接按回车,或者输入android

只有apk时

我们把 apk 放在D盘 test 文件夹下
在cmd输入以下命令即可查看签名信息里的内容

jarsigner -verify -verbose -certs D:\test\qunar.apk
复制代码

jarsigner对未签名的apk签名

上传一些应用市场时,可能需要应用签名认领,例如上传魅族市场时,应用认领说明如下:

开发者应用认领说明
Flyme应用中心应用认领,采用Android的apk安装包签名机制来完成。如果你不清楚签名是什么,请联系开发人员协助您。
在Android平台发布应用程序之前,必须经过一个签名流程。现在您的密钥就是您的身份证明,您所要做的就是使用您的密钥,将我们提供给您的一款未经过签名的apk包签名后,发送给我们。

我们要做的就是,给市场提供的一个未经签名的apk重新签名。用的签名文件就是我们要上传的apk的签名文件

重新签名要用到 jarsigner 命令,使用如下:

命令格式:

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
复制代码

命令格式及参数意义:

-verbose -> 输出签名过程的详细信息

-keystore [keystorePath] -> 密钥的库的位置

-signedjar [apkOut] -> 签名后的输出文件名

[apkIn] -> 待签名的文件名

[alias] -> 证书别名

演示一下:
在桌面新建一个文件夹 Demo,里面放上 未签名的apk 和 签名文件
在这里插入图片描述
在当前文件夹中执行 cmd

由于 cmd 命令是在当前文件夹中执行的,所以签名文件路径不用写,直接写签名文件名称
待签名 和 签名后输出文件名 都在当前路径,所以直接写名字
我的签名文件的别名是 Yi

jarsigner -verbose -keystore MyAppKey.jks -signedjar test-signed.apk test-unsigned.apk Yi
复制代码

按回车键后,提示输入密码短语,输入是看不见的,输完按回车即可
在这里插入图片描述
结束后,Demo 文件中多了签好名的apk了
在这里插入图片描述

签名不对,请检查签名是否与开放平台上填写的一致

查看我的另一篇文章:传送门

使用 re-sign.jar 重新签名

re-sign.jar 工具可以将一个 apk 文件重签名,使用的是 android 自带的 debug 签名。可以通过re-sign.jar 工具,获得app的 packageName 和 main activity。用于自动化测试

下载地址

下载re-sign.jar
提取码:esmq

使用

1、运行报ANDROID_HOME错误

当打开re-sign.jar时弹出以下提示时
在这里插入图片描述
解决办法

新建环境变量ANDROID_HOME,指向sdk安装路径
在这里插入图片描述
然后编辑path,新增ANDROID_HOME
在这里插入图片描述
具体新增环境变量的方法可以参考配置Gradle环境变量

再次双击运行re-sign.jar后,没有了刚才的提示,
在这里插入图片描述
2、将要重新签名的apk拖到这里,弹出以下
在这里插入图片描述
ERROR:Cannot run program "xx/zipalign"
![在这里插入图片描述](img-blog.csdnimg.cn/20190919164…在这里插入图片描述
解决办法

在第一步下载的文件中有一个zipalign,放到提示的路径下即可

3、等一会儿,成功会弹出以下弹框
在这里插入图片描述
注意这里显示了包名和启动Activity,记住这些信息,自动化测试会用到

我们可以对比下前后签名信息

如何使用CMD查看签名信息

在这里插入图片描述
在这里插入图片描述
可以看到重新签名成功了

文章分类
Android
文章标签