Android安卓应用签名方法,通过keytool和jarsigner实现

关于keytool和jarsigner显示乱码的问题,解决方法 传送门


  1. 生成正式版本,并找到unsigned文件的路径,记下来demo-unsigned.apk

  2. 用keytool生成签名keystore文件

     keytool -genkey -v -keystore <keystoreName>.keystore -alias <Keystore AliasName> -keyalg <Key algorithm> -keysize <Key size> -validity <Key Validity in Days>
    
    • <keystoreName>:要生成的签名文件名,扩展名为 keystore
    • <Keystore AliasName>:签名的别名,作为唯一性依据
    • <Key algorithm>:加密方式,譬如RSA
    • <Key size>:签名长度,可忽略
    • <Key Validity in Days>:有效期,单位是 天

    输入以上命令后,接下来按提示操作,分别是:

    1. 输入密码,
    2. 确认密码,
    3. 组织单位名称,
    4. 组织名称,
    5. 市,
    6. 省,
    7. 国家两字母代码(中国是CN)
    8. 最后,核对以上信息,按Y完成

    输入主密码,这里我不是太了解为什么要分两个,直接回车表示使用相同密码。

  3. 用jarsigner给未签名的应用签名并生成已签名的应用

     jarsigner -verbose -keystore <keystorename> -signedjar <Output Signed APK file> -digestalg SHA1 -sigalg MD5withRSA <Unsigned APK file> <Keystore Alias name>
    
    • <keystorename>:上一步通过keytool生成的签名文件(带扩展名keystore)
    • <Output Signed APK file>:签名后输出的文件
    • <Unsigned APK file>:未签名且此刻用于签名的文件
    • <Keystore Alias name>:签名的别名(不带扩展名keystore)

    然后,按提示输入上一步设置的密码,即可大功告成。

参考:

http://stackoverflow.com/questions/26449512/how-to-create-singed-apk-file-using-cordova-command-line-interface

http://blog.csdn.net/xyz_lmn/article/details/6212938

若您觉得我的博文对您有帮助,欢迎点击下方按钮对我打赏
打赏