Android应用apk签名打包
注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。
apk的签名工作可以通过三种方式来完成:
1)通过ADT提供的图形化界面完成apk签名;即用AS来完成
2)通过在build.gradle配置再通过命令行完成apk签名
3)完全通过DOS命令来完成apk签名
这里我们采用方式1来完成,简单快捷,完全图形化界面搞定;
方式2也是不错的选择;
如果想用方式3参考:http://blog.youkuaiyun.com/lyq8479/article/details/6401093
方式一:通过Android Studio进行签名
操作如下图
注意:针对Signature Versions有两个选项,Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2
二者的区别:
V1:可对签名后的文件,作适当修改,并重新压缩。
V2:不能对签名后的 APK作任何修改,包括 zipalign。因为它是针对字节进行的签名,所以任何改动都会影响最终结果。
Signature Versions不能只选择 V2(Full APK Signature),应该选择V1(Jar Signature),或者选择 V1和 V2。勾选V2就可能导致在Android7.0以下的设备无法安装。所以只要打包的时候建议勾选V1就好了。
详细参考 :https://developer.android.google.cn/about/versions/nougat/android-7.0.html#apk_signature_v2
上图中,点击”finish”之后,可以看到Android Studio的最下方显示:Gradle正在执行assembleRelease这样一个任务,我这里将签名后包的路径设置在app文件夹下,如下图所示:
方式二:通过命令行完成apk签名
注: 下面的图片因为是截图上传的,可以利用浏览器右键新标签页打开就可以看到清晰的图片了!
打开Project Stucture图形化界面:
选中app这个module,然后切换到singning标签栏,紧接着点击添加,然后生成release签名信息,紧接着点击”OK”。
切换到Build Types标签,将Signing config选择为”release”,即将刚刚生成的release签名信息配置进去。
操作完成之后,我们可以看到app这个module的build.gradle文件多出了如下红框部分的代码:
然后执行菜单栏的”build-clean Project”:
生成realease版本的apk: 双击右侧Gradle栏中选择当前工程下的build文件夹下assembleRelease !
默认签名的数字证书(debug.keystore)
为了方便我们开发调试程序,ADT会自动的使用debug密钥为应用程序签名。debug密钥是一个名为debug.keystore的文件,它的位置:C:\Users\LGC.android\debug.keystore
追及:
我们可以输入如下命令来查看其详细信息:
(Android debug.keystore的密码是:android)
=========================================
命令行命令: keytool -list -keystore debug.keystore
密钥库类型: JKS
密钥库提供方: SUN
您的密钥库包含 1 个条目
androiddebugkey, 2017-4-4, PrivateKeyEntry,
证书指纹 (SHA1): 0B:38:67:A6:4A:92:23:6D:3D:E8:33:22:11:FF:A6:55:C1:CC:30:66
=========================================
如何生成未经签名的apk
有的时候需要对apk进行再签名,或者用第三方工具来进行签名,这时需要生成出没有签名的apk文件,我们利用AS来生成。其实就是在配置签名信息前打出的包。
如图所示:
如何查看应用签名
方式一: 窗口命令操作
在存放签名的文件夹下,我把它放在 C:\Users\LGC.android下,lgc.jks
在此处打开命令窗口进行操作:
输入: keytool
输入:keytool -list -v -keystore lgc.jks 注意将签名文件改为自己的
输入:密码