目录
一、前言
二、signingConfigs
三、signingConfig 结构解析
四、signingConfig 属性
五、一些建议
六、写在最后
一、前言
今天分享 signingConfigs 配置,从字面知道有 “签署配置” 的意思。该配置的作用,就是为编译出来的apk签上我们的“名字”,这样才能将apk发布安装到用户的设备上。
设备(手机、TV等)对 apk 的唯一认定,并不只是包名,而是 包名和签名,其中一项不同,都会认为这个 apk 包是不同的。
包名的不同,表现为多个应用。签名的不同,在应用升级时表现为无法安装,如果是第一次安装,则不会有问题。
二、signingConfigs
在 signingConfigs
下能够配置多个 signingConfig
,例如下面代码中的 sign1 和 sign2。可以供我们变体选择需要的签名。
signingConfigs {
sign1 {
//....
}
sign2 {
//....
}
}
三、signingConfig 结构解析
1、signingConfig 的存在位置
signingConfig 会映射为 com.android.build.gradle.internal.dsl.SigningConfig
类,继承结构如下:
2、如何运行
signingConfig 主要是用于打包时的签名,所以我们需要的是进行apk的打包编译。
// app:clean 为了先清空之前的文件
// app:aR 进行编译 release 包
// mac 使用 ./gradlew
// window 使用 gradlew
./gradlew app:clean app:aR
四、signingConfig 属性
4.1 keyAlias
- 类型:String
- 描述:我们所使用的签名别名。
- 使用方法:
sign1 {
keyAlias 'gradleStudy'
//...其他属性
}
4.2 keyPassword
- 类型:String
- 描述:签名的密码
- 使用方法:
sign1 {
keyPassword '123456'
// ...其他属性
}
4.3 storeFile
- 类型:File
- 描述:使用的签名文件,如果使用相对路径,是相对于我们设置该属性的gradle文件所处位置。
- 使用方法:
sign1 {
storeFile file('../key/gradleStudy.jks')
// ...其他属性
}
4.4 storePassword
- 类型:String
- 描述:签名文件的密码
- 使用方法:
sign1 {
storePassword 'gradleStudy'
// ...其他属性
}
4.5 storeType
- 类型:String
- 描述:签名类型。当我们不填时,默认为
jks
类型。 - 使用方法:
sign1 {
storeType 'jks'
// ...其他属性
}
4.6 v1SigningEnabled
- 类型:boolean
- 描述:是否使用 v1 类型的签名方案。默认为true,即开启状态。如果我们将其置为false,则会导致在 7.0 以下版本,无法正常安装。
- 使用方法:
sign1 {
v1SigningEnabled false
// ...其他属性
}
4.7 v2SigningEnabled
- 类型:boolean
- 描述:是否使用 v2 类型的签名方案。默认为true,即开启状态。v2在 7.0 版本之后才支持。
- 使用方法:
sign1 {
v2SigningEnabled true
// ...其他属性
}
略带一提,v1、v2、v3 的签名方案在此处就不展开了,有兴趣的同学可以移步官方的文档查看,请进传送门。
五、一些建议
因为签名文件和信息对于个人或是公司来说都是很重要的,官方并不建议直接写在gradle中,而是在根目录下建一个 keystore.properties
文件,存放我们的签名配置,然后在 gradle 中将其引入。
具体代码可以查看小盆友的另一个项目,多渠道打包。
六、写在最后
Gradle项目地址:Github传送门
本篇博文的 signingConfigs 配置,请进传送门
如果觉得本篇博文对你有所启发或是解决了困惑,给个赞或关注我呀,小盆友会继续分享更多的优质文章。
或是请我喝杯咖啡吧,小盆友会更加信心百倍的写下去