一、生成签名文件
在菜单栏中依次点击Build--->Generate Signed APK... --->Create new ...(如果之前没有生成签名文件,则创建一个)
或者选择Choose existing...(如果有签名文件,可以选择之前的签名文件)-->填写keystore的保存路径以及keystore和key的密码,务必记住,否则影响升级-->点击ok-->在Build Type类型中选择release,点击finish
然后将生成的keystore.jks文件添加到build.gradle中
在菜单栏中点击Project Structure--->点击module名称--->点击Signing--->点击添加‘+’-->填写相应的内容,单击ok即可在build.gradle文件中看到signingConfigs
二、release和debug签名的区别
1、debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;Debug模式下签名用的证书自从它创建之日起,1年后就会失效。
2、debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行APK版本升级,那么就会出现上面那种程序不能覆盖安装的问题,相当于软件不具备升级功能
三、Jar Signature (V1)与Full APK Signature(V2)的区别
V1:应该是通过ZIP条目进行验证,这样可以APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。
V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在,在编译过程中,我们将压缩、调整和签署合并成一步完成。
解决方案:
只勾选v1并不会影响什么,但是在7.0上不会使用更安全的验证方式
只勾选v2那么7.0以下会直接显示安装未完成,7.0以上则会使用更安全的验证方式
同时勾选v1和v2则所有机型都没有问题
解决方案:
在app的build.gradle文件下的signingConfigs下的debug和release中添加
v1SigningEnabled true
v2SigningEnabled true