----《Android Gradle 权威指南》学习笔记
上一篇:Android Gradle 插件 -- Android Gradle 工程示例
下一篇:Android Gradle -- 隐藏签名文件信息
相关文章:Android 生成和使用签名文件
1 配置签名信息
1.1 一个 APP 只有签名之后才能被发布、安装和使用,签名是保护 APP 的方式,标记该 APP 的唯一性。如果 APP 被恶意篡改,签名就不一样了,就无法升级安装,在一定程度上保护了 APP。
1.2 要想对 APP 进行签名,先得有一个签名证书文件,这个证书文件被开发者持有,这里不做详述。
1.3 一般 APP 有 debug 和 release 两种模式,在开发调试时使用 debug 模式,在发布的时候用 release 模式;可以针对两种模式采用不同的签名方式。一般 debug 模式的时候,Android SDK 已经体用了一个默认的 debug 签名证书,可以直接使用;发布的时候,使用 release 模式时就要配置私有的签名证书。
1.4 对于签名信息的配置,Android Gradle 提供了非常简便的方式,可以很容易的配置一个签名信息,如下所示:
android {
compileSdk 31
....
signingConfigs {
release {
storeFile file("myReleaseKey.keystore")
storePassword "pwd1"
keyAlias "myReleaseKey"
keyPassword "pwd2"
}
debug{
storeFile file("myDebugKey.keystore")
storePassword "pwd1"
keyAlias "myDebugKey"
keyPassword "pwd2"
}
}
...
}
上面的代码中,配置了 release 和 debug 的配置。默认情况下,debug 模式的签名已经配置好了,使用的就是 Android SDK 自动生成的 debug 证书,一般位于 $HOME/.android/debug.keystore,其 key 和密码都是已知的,一般情况下不需要单独配置 debug 模式的签名信息。如下所示:
android {
compileSdk 31
....
signingConfigs {
release {
storeFile file("myReleaseKey.keystore")
storePassword "pwd1"
keyAlias "myReleaseKey"
keyPassword "pwd2"
}
}
...
}
1.5 Android Gradle 提供了 signingConfigs{} 配置块来生成多个签名配置信息。 signingConfigs 是 Android 的一个方法,接受一个域对象作为参数。可以配置的元素如下:
storeFile: 签名证书文件
storePassword:签名证书文件的密码
storeType:签名证书的类型
keyAlias:签名证书中密钥别名
keyPassword:签名证书中该密钥的密码
2 使用配置好的签名信息
上面配置好了签名信息,使用签名信息有两种方式:在 defaultConfig{} 中使用 和 在 buildTypes{} 中使用。
2.1 在 defaultConfig{} 中使用签名信息
在 defaultConfig{} 中使用签名信息时,需要将 signingConfigs 代码块写在 defaultConfig 代码块的上方,这样在 defaultConfig 中才能使用到。代码如下:
defaultConfig {
applicationId "com.cakes.testmodule"
...
signingConfig signingConfigs.release
}
2.2 在 buildTypes{} 中使用签名信息
除了默认签名配置外,也可以对构建的类型分别配置签名信息,即在 buildTypes 代码块中配置签名信息,代码如下:
buildTypes {
release {
signingConfig signingConfigs.release
...
}
}
网友评论