AndroidStudio 使⽤正式签名进⾏调试
在 Studio 中,可以使⽤Gradle 进⾏打包时⾃动签名。其实Android Studio 默认会给调试应⽤加上Debug 签名,但有时候调⼀些第三⽅SDK 时,需要正式签名才能调起来,所以接下来分享⼀下使⽤Gradle ⾃动签名的⽅法。
⼀、创建签名⽂件
打开AS ,选择Build->Generate Signed APK ,选择要打包的项⽬,点击Next ,再点击创建签名⽂件
填写签名⽂件响应信息,如下所⽰,Password 、Key-Alias 、Key-Password 这三个值需要记住,然后点击OK ,完成创建。
完成之后,在相应路径⽣成⼀个jks 签名⽂件。如果选择⼿动再进⾏打包,就可以选择该签名⽂件,然后对应填⼊密码与别名,进⾏签名,也可以。
android获取真正的签名⼆、配置Gradle ⾃动打包
拷贝签名⽂件到主⼯程根⽬录,打开主⼯程的adle ⽂件,在android 节点下,增加以下内容:
storeFile file :签名⽂件,如果放在其他路径,需要对应修改
storePassword :密码(刚才填的第⼀个密码)
keyAlias :别名
keyPassword :别名密码
然后重新build ⼀下⼯程,展开右边栏Gradle 选项卡,如下所⽰:
assembleRelease ,即为正式签名。双击assembleRelease ,则会开始执⾏命令:
执⾏完毕可以看到BUILD SUCCESSFUL ,说明正式签名打包成功了。展开⼯程的build ⽂件夹,可发现有app-release.apk ,即为正式版本。下次直接run 起来的时候,就带正式签名了。这可⽐⼿动签名省事多啦~~
当然,为了提⾼安全性,我们还可以把那四个属性作为变量配置在主⼯程的gradle.propreties ,然后在adle 引⽤变量就可以了。如下:
这样也能起到同样的效果。
三、应⽤程序签名的意义
(1)保障开发者的合法权益
在我们对应⽤程序进⾏打包签名后,即表⽰此应⽤程序是签名⼈或机构所开发的,对此应⽤程序具有所有权。
(2)预防应⽤程序替换
应⽤程序签名可以防⽌部分⼈通过使⽤相同的Package Name 来混淆替换已经安装的程序,从⽽出现⼀些恶意篡改。APK 如果使⽤⼀个key 签名,发布时另⼀个key 签名的⽂件将⽆法安装或覆盖⽼的版本,这样可以防⽌你已安装的应⽤被恶意的第三⽅覆盖或替换掉。实际上就是⼀种标识。
(3)保证应⽤程序版本的⼀致性
⼀般应⽤程序都会有更新,即版本的升级。如果应⽤程序的签名不⼀致,是⽆法进⾏更新替代的。所以应⽤程序的签名是保证当前应⽤程序顺利进⾏更新安装的前提。
(4)可以通过权限(permission)的⽅式在多个程序间共享数据和代码[plain]
01. signingConfigs { 02. release { 03. storeFile file('keystore.jks') 04. storePassword '123456' 05. keyAlias 'yyh' 06. keyPassword '123456' 07. } 08. } 09. 10. buildTypes { 11. release { 12. minifyEnabled false 13. proguardFiles getDefaultProguardFile(''), '' 14. lease 15. } 16. 17. debug { 18. lease 19. } 20. }
Android提供了基于数字证书的权限赋予机制,应⽤程序可以和其他的程序共享概功能或者数据给那那些与⾃⼰拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同⼀个数字证书的程序。另⼀⽅⾯,Android系统允许拥有同⼀个数字签名的程序运⾏在⼀个进程中,Android程序会将他们视为同⼀个程序。所以开发者可以将⾃⼰的程序分模块开发,⽽⽤户只需要在需要的时候下载适当的模块。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论