目录
1.打包时选择Signature Version
1.1 两者区别
1.2 使用方式
2 App打包后,APK安装失败
1.打包时选择Signature Version
在打包程序时,会让选择签名版本,如下:
1.1 两者区别
V1:仅验证未解压的文件内容,这样APK 签署后可进行许多修改 ,可以移动甚至重新压缩文件。 V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。 正因如此,现在在编译过程中,我们将压缩、调整和签署合并成一步完成。 V2的好处:更安全而且新的签名可缩短在设备上进行验证的时间(不需要费时地解压缩然后验证), 从而加快应用安装速度。如有任何自定义任务篡改 APK 文件或对其进行后处理(无论以任何方式), 那么V2 签名会有作废的风险,从而导致您的 APK 与 Android 7.0 及更高版本不兼容。
1.2 使用方式
只勾选v1签名并不会影响什么,但是在7.0上不会使用更安全的验证方式
只勾选V2签名7.0以下会直接安装完显示未安装,7.0以上则使用了V2的方式验证
同时勾选V1和V2则所有机型都没问题为了方便我们每次打包,我们可以设置每次打包默认两个都勾选。在app所对应的build.gradle添加如下配置,:
signingConfigs {
debug {
v1SigningEnabled true
v2SigningEnabled true
}
release {
v1SigningEnabled true
v2SigningEnabled true
}
}
2 App打包后,APK安装失败
1.覆盖安装检查你的新旧apk所使用的签名文件是否是同一个2.检查签名文件是否是发布版本
debug 签名的应用程序不能在 Android Market 上发布,它会强制你使用自己的签名,
debug.keystore 在不同的机器上所生成的可能都不一样,就意味着如果你换了机器
进行 apk 版本升级,那么将会出现上面那种程序不能覆盖安装的问题。不要小视这个
问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但是
如果你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能,
所以一定要使用正式发布版本的签名。
3.检查清单文件中的两个属性
ersionCode和versionName,发布新版本的时候会有可能会忘记修改这两项。如果
没有修改会导致软件发布后用户无法接收到更新提示,也就影响软件的更新率。