Android gradle 自动签名
来源:互联网 发布:程序员编程动漫 编辑:程序博客网 时间:2024/05/18 03:17
Android gradle 自动签名
上篇博客讲了如何自动生成多环境的包,但是现在生成的apk除了debug之外都是unsign的.也是没有签名.还需要对jar包重新进行一次签名.比较费时,其它时gradle已经可以实现在生成apk时自动签名.只是需要手动配置一下.流程也不复杂.只需要在修改一下build.gradle文件
实现基本功能
在build.gradle的adnroid层级中,加入如下配置
signingConfigs { debugConfig { storeFile file("yourDebugApp.keystore") storePassword "your password" keyAlias "your alias" keyPassword "your password" } testConfig { storeFile file("yourTestApp.keystore") storePassword "your password" keyAlias "your alias" keyPassword "your password" } releaseConfig { storeFile file("yourRelaseApp.keystore") storePassword "your password" keyAlias "your alias" keyPassword "your password" }}
并修在buildType中加入
buildTypes { //开发环境 debug { //实现自动签名 signingConfig signingConfigs.debugConfig } //测试环境 Test { signingConfig signingConfigs.testConfig } //生产环境 release { signingConfig signingConfigs.releaseConfig } }
自动签名进阶
安照上面的配置,只要运行gradle build,就是自动生成签名后apk,但是把keystore文件在密码放在gradle文件明显是不安全的,做代码管理时,是需要把这个build.gradle文件也纳入管理范围的.所以为了安权起见,我们可以装证书相关的信息放在一个配置文件里,每次build的时候,使用gradle读取配置文件,这个在做代码管理时,把配置文件排除在外,就可以了.下面我们就来实现这个功能.
建立配置文件
建立sign.properties文件,内容如下.
STORE_FILE=yourAppStroe.keystoreSTORE_PASSWORD=yourStorePwdKEY_ALIAS=yourKeyAliasKEY_PASSWORD=yourAliasPwd
读取配置文件并设置SigningConfig
def getSignInfo(propFileName) { def com.android.build.gradle.internal.dsl.SigningConfig signingConfig = new com.android.build.gradle.internal.dsl.SigningConfig("signInfo") File propFile = file(propFileName); if (propFile.exists()) { def Properties props = new Properties() props.load(new FileInputStream(propFile)) signingConfig.storeFile = file(props['STORE_FILE']) signingConfig.storePassword = props['STORE_PASSWORD'] signingConfig.keyAlias = props['KEY_ALIAS'] signingConfig.keyPassword = props['KEY_PASSWORD'] println('signConfig is exits') } else { println('sign config is null') signingConfig = null } return signingConfig;}
调用方式
删除signingConfigs,修改buildTypes,demo如下
buildTypes { //开发环境 debug { //实现自动签名 signingConfig getSignInfo("../sign.properties"); } //测试环境 Test { signingConfig getSignInfo("../testsign.properties"); } //生产环境 release { signingConfig getSignInfo("../sign.properties"); } }
以上就完成了自动签名的流程.如需要为每个环境使用不同的签名,只需建不同的配置文件即可.
0 0
- Android gradle 自动签名
- android studio gradle自动签名构建实现
- Android Studio之Gradle配置APK自动签名
- android studio gradle 签名
- Android Studio + Gradle 签名APK
- AndroidStudio配置gradle,APP自动签名
- AndroidStudio配置gradle,让App自动签名
- Android Studio Gradle 多渠道自动打包,动态修改HostUrl,签名apk,混淆配置详解
- android自动打包签名
- android studio 自动签名
- Android studio自动签名
- Android Gradle打包签名的方式
- Android Studio 签名文件Gradle安全配置
- Gradle签名
- Android Studio使用Gradle实现自动打包,签名,自定义apk文件名,多渠道打包,集成系统签名证书【附效果图附源码】
- Android studio gradle debug模式用Release签名
- Android Studio 中Gradle配置debug使用release的签名
- android使用gradle打包带签名的apk包
- Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
- 炫酷反演魔术 魔术揭秘
- java集合大家族之总结
- Myeclipse 手动安装Velocity插件
- logback日志管理配置
- Android gradle 自动签名
- 高逼格的block(链式编程思想 )
- 直接在服务器与客户端之间传输对象
- HTML5高级程序设计 test1 (与dojo和原生js的对比)
- Mysql学习总结(31)——MySql使用建议,尽量避免这些问题
- 在线pdf如何转换成jpg图片格式
- ionic+angularJs的App启动过程
- Linux系统调用与文件I/O(一)
- WebView获取点击的图片的URL