----《Android Gradle 權(quán)威指南》學(xué)習(xí)筆記
總目錄:Gradle 學(xué)習(xí)系列 -- 目錄
上一篇:Android Gradle 插件 -- Android Gradle 工程示例
下一篇:自定義 Android Gradle -- 隱藏簽名文件信息
相關(guān)文章:Android 生成和使用簽名文件
1 配置簽名信息
1.1 一個 APP 只有簽名之后才能被發(fā)布、安裝和使用搁骑,簽名是保護(hù) APP 的方式,標(biāo)記該 APP 的唯一性。如果 APP 被惡意篡改,簽名就不一樣了娩缰,就無法升級安裝萌踱,在一定程度上保護(hù)了 APP。
1.2 要想對 APP 進(jìn)行簽名萨醒,先得有一個簽名證書文件,這個證書文件被開發(fā)者持有苇倡,這里不做詳述富纸。
1.3 一般 APP 有 debug 和 release 兩種模式,在開發(fā)調(diào)試時使用 debug 模式旨椒,在發(fā)布的時候用 release 模式晓褪;可以針對兩種模式采用不同的簽名方式。一般 debug 模式的時候综慎,Android SDK 已經(jīng)體用了一個默認(rèn)的 debug 簽名證書涣仿,可以直接使用;發(fā)布的時候示惊,使用 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 的配置录择。默認(rèn)情況下拔莱,debug 模式的簽名已經(jīng)配置好了,使用的就是 Android SDK 自動生成的 debug 證書隘竭,一般位于 $HOME/.android/debug.keystore,其 key 和密碼都是已知的塘秦,一般情況下不需要單獨(dú)配置 debug 模式的簽名信息。如下所示:
android {
compileSdk 31
....
signingConfigs {
release {
storeFile file("myReleaseKey.keystore")
storePassword "pwd1"
keyAlias "myReleaseKey"
keyPassword "pwd2"
}
}
...
}
1.5 Android Gradle 提供了 signingConfigs{} 配置塊來生成多個簽名配置信息货裹。 signingConfigs 是 Android 的一個方法嗤形,接受一個域?qū)ο笞鳛閰?shù)』≡玻可以配置的元素如下:
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{} 中使用簽名信息
除了默認(rèn)簽名配置外,也可以對構(gòu)建的類型分別配置簽名信息历造,即在 buildTypes 代碼塊中配置簽名信息甩十,代碼如下:
buildTypes {
release {
signingConfig signingConfigs.release
...
}
}