@Tyhj
2017-04-21T14:58:29.000000Z
字数 1599
阅读 1772
Android
“参考”至:http://blog.csdn.net/yyh352091626/article/details/50915357#reply
原文:https://www.zybuluo.com/Tyhj/note/730509
最近在应用中支持了微信登录,但是微信登录呢,需要交钱,这不是重点,重点是要打包正式签名,这样调试就很麻烦了,所以就需要让应用支持在正式签名下调试了。
打开AS,选择Build->Generate Signed APK,选择要打包的项目,点击Next,再点击Create new...创建签名文件
完成之后,在相应路径生成一个jks签名文件。如果选择手动再进行打包,就可以选择该签名文件,然后对应填入密码与别名,进行签名,也可以。
拷贝签名文件到主工程根目录(app下),打开主工程的build.gradle文件,在android节点下,增加以下内容:
signingConfigs {
release {
storeFile file('keystore.jks')
storePassword '123456'
keyAlias 'yyh'
keyPassword '123456'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.release
}
}
storeFile file:签名文件,如果放在其他路径,需要对应修改
storePassword:密码(刚才填的第一个密码)
keyAlias:别名
keyPassword:别名密码
然后重新build一下工程,展开右边栏Gradle选项卡,如下所示:
assembleRelease,即为正式签名。双击assembleRelease,则会开始执行命令
执行完毕可以看到BUILD SUCCESSFUL,说明正式签名打包成功了。展开工程的build文件夹,可发现有app-release.apk,即为正式版本。
下次直接run起来的时候,就带正式签名了。
(1)保障开发者的合法权益
在我们对应用程序进行打包签名后,即表示此应用程序是签名人或机构所开发的,对此应用程序具有所有权。
(2)预防应用程序替换
应用程序签名可以防止部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改。APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。实际上就是一种标识。
(3)保证应用程序版本的一致性
一般应用程序都会有更新,即版本的升级。如果应用程序的签名不一致,是无法进行更新替代的。所以应用程序的签名是保证当前应用程序顺利进行更新安装的前提。
(4)可以通过权限(permission)的方式在多个程序间共享数据和代码
Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。另一方面,Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。
恩,就是这样的,我就是这样搞定了微信调试。