Android签名详细

Android签名详细

2018-10-23    

相应的官方详细点击这里

参考文章可以看 Android打包流程

IONIC 开发的Android应用程序签名(或重新签名)详解

在生成未签名后的apk,需要进行签名才能安装,上一篇文章中的签名步骤可能会遇到问题,下面来解决此类问题.

更新-2018-12-9

    生成签名文件:keytool -genkey -v -keystore myApp.keystore -alias myAppKey -keyalg RSA -keysize 2048 -validity 20000
    对apk签名:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore myApp.keystore -signedjar myApp.apk android-release-unsigned.apk myAppKey
    去掉警告的签名:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -tsa https://timestamp.geotrust.com/tsa -keystore myApp.keystore -signedjar myApp.apk android-release-unsigned.apk myAppKey
    参考链接:https://blog.csdn.net/qq_34815528/article/details/78264958

一、生成签名文件

进入项目中,需要cd到platforms/android目录下执行以下命令.

注意一定要进入到该目录下才能进行下面的操作

    keytool -genkey -v -keystore jhy-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias yankai  

后面的yankai是自己取的名字,输入的密码记住就好,其他的信息随便。这样就生成了jhy-release-key.keystore文件。 执行后可能会出现:

JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12” 迁移到行业标准格式 PKCS12。

执行:

    keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12 

执行结果:Warning: 已将 "jhy-release-key.jks" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "jhy-release-key.jks.old" 进行了备份。

二、签名

把生成的android-release-unsigned.apk(执行ionic build android --prod --release生成未签名状态的apk)拷贝到与生成的jhy-release-key.jks同一目录下,也就是项目的主目录下(上面提到的执行命令的目录platforms/android),执行命令:

    jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore jhy-release-key.jks android-release-unsigned.apk alias_jhy

也可以生成新的名称的apk

    jarsigner -verbose -keystore jhy-release-key.jks -signedjar complate.apk android-release-unsigned.apk yankai

输入签名文件的密码,成功之后主目录下的android-release-unsigned.apk就被签名成功了,会比原来未被签名的apk文件大一点,能够安装到手机或android虚拟机上了。

签名完成后会提示没有时间戳,忽略即可

图