手把手,教你怎样用命令行给apk签名

        最近因为项目上线,要配合运营的童鞋们上传各渠道apk,其中,搜狗的渠道因为迁移问题,需要给一个他们提供的空的apk签名,然后用公司的签名文件进行签名

没办法,只能手动给apk签名,网上搜索一片均不太完善,特总结一下成功的经验供各位童鞋参考!
 
        首先,相信各位童鞋都已配好java环境:
  1.         将要签名的apk,签名文件放到同一个文件夹,我这里需要签名的apk为unsign.apk,签名文件为sign.apk
  2.         cd到此目录下,输入
    jarsigner -verbose -keystore sign -signedjar sign.apk unsign.apk sign
    解释一下:
    jarsigner 签名命令 java/bin目录下的一个签名工具
            -verbose         输出签名的详细信息 
           -keystore         密钥库位置  后面跟签名文件路径,因为现在在同一个文件夹下,只需要输入文件名称即可
           -signedjar sign.apk    unsign.apk    sign    正式签名,三个参数中依次为签名后产生的文件sign.apk ,要签名的文件unsign.apk和签名文件的别名key alias
     
  3. 根据各位童鞋的具体情况替换具体文件名或路径,执行以下,有大部分人可能会碰到一下错误
    1. jarsigner:找不到VCinemaKey.keystore的证书链。VCinemaKey.keystore必须引用包
     
    各方百度,说的都不太对,其实,问题主要出现在这里
    jarsigner -verbose -keystore sign -signedjar sign.apk unsign.apk sign
    此时的签名文件为sign,alias为sign,并没有什么问题,可是大部分人,可能签名文件名为  xxx.keystore或者其他名称
    问题就在这里,使用手动签名,必须保证签名文件名称和别名alias一致,这也是其他地方含糊不清的地方
  4. 查看alias,利用studio签名 导入签名文件后可以看到签名的别名
  5. 修改签名文件的名称和别名一致,然后重新运行上述命令,签名成功,大功告成!!
        
        





静以修身 俭以养德
原文地址:https://www.cnblogs.com/Android-MR-wang/p/5125002.html