使用命令行方式进行签名

转载 2012年03月22日 22:55:45

签名和发布应用程序

要想使Android应用程序在真机上运行,需要对apk(Android应用程序的执行文件,相当于Symbian程序的sis/sisx或Java ME程序的jar文件)文件进行签名。可以通过命令行或ADT插件方式对apk文件进行签名。本节将详细介绍签名过程。

使用命令行方式进行签名

使用命令行方式进行签名需要JDK中的两个命令行工具:keytool.exe和jarsigner.exe。可按如下两步对apk文件进行签名:

(1)使用keytool生成专用密钥(Private Key)文件。

(2)使用jarsigner根据keytool生成的专用密钥对apk文件进行签名。

生成专用密钥的命令如下:

[java] view plaincopy
  1. keytool -genkey -v -keystore androidguy-release.keystore  
  2. -alias androidguy -keyalg RSA -validity 3000  
其中androidguy-release.keystore表示要生成的密钥文件名,可以是任意合法的文件名。androidguy表示密钥的别名,后面对apk文件签名时需要用到。RSA表示密钥算法。30000表示签名的有效天数。

在执行上面的命令后,需要输入一系列的信息。这些信息可以任意输入,但一般需要输入一些有意义的信息。下面是作者输入的信息:

[java] view plaincopy
  1. 输入keystore密码:    
  2. 再次输入新密码:    
  3. 您的名字与姓氏是什么?    
  4.   [Unknown]:  lining    
  5. 您的组织单位名称是什么?    
  6.   [Unknown]:  nokiaguy.blogjava.net    
  7. 您的组织名称是什么?    
  8.   [Unknown]:  nokiaguy    
  9. 您所在的城市或区域名称是什么?    
  10.   [Unknown]:  shenyang    
  11. 您所在的州或省份名称是什么?    
  12.   [Unknown]:  liaoning    
  13. 该单位的两字母国家代码是什么?    
  14.   [Unknown]:  CN    
  15. CN=lining, OU=nokiaguy.blogjava.net, O=nokiaguy,   
  16. L=shenyang, ST=liaoning, C=CN 正确吗?    
  17.   [否]:  Y    
  18. 正在为以下对象生成 1,024 位 RSA 密钥对和自签名证书   
  19. (SHA1withRSA)(有效期为 30,000 天):    
  20.          CN=lining, OU=nokiaguy.blogjava.net,   
  21. O=nokiaguy, L=shenyang, ST=liaoning, C=CN   
  22. 输入<androidguy>的主密码    
  23.         (如果和 keystore 密码相同,按回车):    
  24. [正在存储 androidguy-release.keystore]    

在输入完上面的信息后,在当前目录下会生成一个androidguy-release.keystore文件。这个文件就是专用密钥文件。

下面使用jarsigner命令对apk文件进行签名。首先找到本章实现的例子生成的apk文件。该文件在ch02_showdatetime\bin目录中,在Windows控制台进入该目录,并将刚才生成的androidguy-release.keystore文件复制到该目录中,最后执行如下命令:

[java] view plaincopy
  1. jarsigner -verbose -keystore androidguy-release.  
  2. keystore ch02_showdatetime.apk androidguy   
其中androidguy表示使用keytool命令指定的专用密钥文件的别名,必须指定。在执行上面的命令后,需要输入使用keytool命令设置的keystore密码和<androidguy>的主密码。如果这两个密码相同,在输入第2个密码时只需按回车键即可(要注意的是,输入的密码是不回显的)。如果密码输入正确,jarsigner命令会成功对apk文件进行签名。签完名后,我们会发现ch02_showdatetime.apk文件的尺寸比未签名时大了一些。

在命令行使用已存在的keystore对apk包进行签名

在命令行使用已存在的keystore对apk包进行签名
  • wuzhipeng1991
  • wuzhipeng1991
  • 2015年10月22日 14:09
  • 3365

Android命令行用已有的keystore对apk进行签名

方法一(推荐): 直接运行已经写好的批处理文件 签名的命令一行就能解决,但需要4个参数: keystore文件路径 签名后生成的apk路径 待签名的apk路径 别名 jarsigner -...
  • aa464971
  • aa464971
  • 2016年10月25日 16:43
  • 3663

使用命令对APK包进行签名

如果不想借助于Eclipse提供的方式对Android应用程序签名,或许在某些场合下,需要对一个“未签名”的APK包进行签名,则可通过“命令”来对Android应用程序进行手动签名。 使用命令对An...
  • KINGDVC
  • KINGDVC
  • 2014年12月23日 17:43
  • 1066

命令行方式调用winrar对文件夹进行zip压缩示例代码

调用C#自带的API进行压缩 //zip destFullPath = destFullPath + "\\" + _myConfig...
  • lee353086
  • lee353086
  • 2015年07月13日 17:29
  • 2145

keystore 获取(常用命令行,SDK创建应用,找应用签名的方法)

keystore 常用的命令行查看keystore信息:1. 在要修改的keystore 文件夹下 shift+右键->点击 在此处打开命令窗口 2. 输入命令行:keytool -v -list ...
  • u012792686
  • u012792686
  • 2016年04月13日 11:14
  • 1164

Windows上WinRAR.exe命令行参数说明

winrar.exe 命令行参数 [语法] RAR    [ - ]      [ ] RAR [ ]   [ ] 一.简单的例子和说明: 压缩文件夹 winrar....
  • frank_liuxing
  • frank_liuxing
  • 2015年03月20日 18:45
  • 5252

[Android]使用命令行方式进行签名

[Android]使用命令行方式进行签名
  • J7A4V5A2W2E8B9e4e6
  • J7A4V5A2W2E8B9e4e6
  • 2015年11月23日 17:23
  • 278

c# 调用 WinRAR 实现文件压缩、文件解压,WinRAR命令行参数,不弹窗

//压缩程序安装路径 string pathExe = Application.StartupPath + @"\WinRAR.exe"; Proces...
  • dhfekl
  • dhfekl
  • 2013年10月22日 14:29
  • 2148

Android开发之签名V1和V2的区别

在我们使用Android studio打包签名的时候可以选择两种签名方式。如下图 对于V2的官网解释如下 官网地址:https://android-developers...
  • FrancisBingo
  • FrancisBingo
  • 2017年11月28日 16:17
  • 1094

java jni 入门5 - 编码签名 以及 javap命令的使用

参考:《Java核心技术 卷II:高级特性》第12章 本地方法 ##################################################################...
  • u012005313
  • u012005313
  • 2015年11月11日 14:53
  • 883
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用命令行方式进行签名
举报原因:
原因补充:

(最多只允许输入30个字)