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”
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190919164618530.png在这里插入图片描述
解决办法

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

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

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

如何使用CMD查看签名信息

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

查看apk签名方式是V1还是V2

进入 Android SDK/build-tools/SDK版本, 在当前文件夹运行cmd 输入命令

apksigner verify -v --print-certs xxx.apk

运行结果如下:
在这里插入图片描述
参考:Android-APK签名工具-jarsigner和apksigner

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值