android使用命令行空包签名

app上传平台比较多像应用宝、豌豆荚、360、百度、小米、华为等。大部分公司一般也就选前四个,有的甚至只上传前两个(以前360审核要求比较多)。现在要上传20个平台,有些平台之前上传过但是运营人员离职后账号就找拿不到了。需求下载空包重新签名认证,我上传魅族的时候就碰到这个情况。

贴一下魅族应用认领说明

开发者应用认领说明

Flyme应用中心应用认领,采用Android的apk安装包签名机制来完成。如果你不清楚签名是什么,请联系开发人员协助您。

在Android平台发布应用程序之前,必须经过一个签名流程。现在您的密钥就是您的身份证明,您所要做的就是使用您的密钥,将我们提供给您的一款未经过签名的apk包签名后,发送给我们。

jarsigner简单使用说明

jarsigner -verbose -keystore ~/Workspace/mykeystore -signedjar ./meizuemptyapk-release-signed.apk ./meizuemptyapk-release-unsigned.apk meizu

给apk包签名的方式有很多种,我们推荐您使用JDK自带的jarsigner工具来完成签名。jarsigner工具的命令格式是:

# jarsigner的命令格式

jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]

#jarsigner的参数说明

-keystore 参数指定您的私钥的绝对路径,例如:c:\mykeystore
-signedjar 参数指定签名后apk文件存放绝对的路径,例如 c:\signed.apk
[未签名的文件路径] 指定要签名apk文件的绝对路径,也就是您从我们这里下载到的,例如 c:\meizuemptyapk-release-unsigned.apk
[您的证书名称] 是指您创建密钥时,您设置的证书名称

Linux和Mac OS X平台的签名方法:

  1. 打开 Terminal 程序
  2. 进入从魅族开放平台下载到的sign_verification.zip解压后的目录,例如cd ~/Downloads/sign_verification
  3. 使用jarsigner签名

命令举例示例:

jarsigner -verbose -keystore ~/Workspace/mykeystore -signedjar ./meizuemptyapk-release-signed.apk ./meizuemptyapk-release-unsigned.apk meizu

这样就完成了,将签名后的包上传到魅族开放平台应用认领签名验证页面.

Windows平台签名方法:

  1. 打开 命令提示符 程序
  2. 进入从魅族开放平台下载到的sign_verification解压后的目录,例如cd C:\Downloads\sign_verification
  3. 使用jarsigner签名

命令举例示例:

jarsigner -verbose -keystore C:\Downloads\sign_verification\mykeystore -signedjar meizuemptyapk-release-signed.apk meizuemptyapk-release-unsigned.apk meizu

这里郑重说一下windows的方法。之前签名一直报错jarsigner 错误: java.lang.RuntimeException: 密钥库加载: Invalid keystore format

明明按照文档做的,还是报错,后来发现

第一个红色的路径是keystore绝对路径,一开始我也弄错了,写成了keystore所在的目录路径了.
第二个红色的是别名,不是keystore的名字

比如我的签名是test1.keystore 

别名是test2

那么应该是

jarsigner -verbose -keystore D:\signature\test2.keystore -signedjar meizuemptyapk-release-signed.apk meizuemptyapk-release-unsigned.apk test1

jarsigner -verbose -keystore [keystorePath] -signedjar [apkOut] [apkIn] [alias]
jarsigner命令格式:-verbose输出详细信息 -keystore密钥库位置 -signedjar要生成的文件 要签名的文件 密钥库文件
keystorePath参数代表keyStore的绝对路径,如D:\keystore\test2.keystore
apkOut参数代表签名后的apk路径,如D:\signed.apk
apkin参数代表在腾讯应用中心下载的未签名apk,默认名称为tap_unsign.apk
alias参数代表签名用的整数名称(创建keyStore时所填写的秘钥别名keyAlias),如test1

这样就完成了,将签名后的包上传到魅族开放平台应用认领签名验证页面.


你可能感兴趣的:(android)