上线了3年多的项目,最近为了进行市场推广,在现在主流的vivo,oppo,华为及百度和阿里进行上传应用.因为有些市场是因为有抓取包的行为(比如在oppo应用市场,以前从未在oppo市场上传过应用,但是能在他的市场中搜索到,这就是因为在其他市场比如应用宝这些市场抓取过包),因此在诸如oppo这样有过抓包行为的市场,在第一次上传apk时,需要进行应用认领,认领时一般会需要对这些平台提供的空包进行签名,一般都是用jarsigner进行签名的.
一. 进行jarsigner签名的环境: 需要检测JDK环境变量是否配置正确:
1:打开cmd
2:在命令行窗口输入javac,出现下图所示:
3:再次输入java,出现下图所示:
4:最后输入java -version,出现下图所示:
如果出现上面的前两个图片显示的内容就说明jdk的环境变量配置是正确的,第三个命令是检查当前电脑中使用的jdk的版本及位数。
二. jarsigner 的签名格式
jarsigner -verbose -keystore [您的私钥存放路径] -signedjar [签名后文件存放路径] [未签名的文件路径] [您的证书名称]
#jarsigner的参数说明
-keystore 参数指定您的私钥的绝对路径,例如: C:\Users\wz\Desktop\sign_verification\abcAndroidKey.jks
-signedjar 参数指定签名后apk文件存放绝对的路径,例如 C:\Users\wz\Desktop\sign_verification\oppoemptyapk- release-signed.apk
[未签名的文件路径] 指定要签名apk文件的绝对路径,也就是从要认领应用的平台下载到的,例如 C:\Users\wz\Desktop\sign_verification\oppoemptyapk-release-unsigned.apk
[您的证书名称] 是指您创建密钥时,您设置的证书名称,其实就是签名中的别名(即:keyAlias)
模板如下图:
三.接下来回车
1.回车后会出现:输入密钥库密码短语: ,然后你就输入签名中的storePassword就可以了,不过在输入时是不显示的.
2.输入完成后回车,会出现 输入xxxx(xxx:其实就是别名)的密钥口令: ,然后你就输入签名中的keyPassword,然后回车就可以了,此时输入的密码也是不显示的.
3.当你看到jar已签名这些的时候,就证明你已经成功签名了,就可以在对应目录下找到已签名的文件了!