----《Android Gradle 權(quán)威指南》學(xué)習(xí)筆記
總目錄:Gradle 學(xué)習(xí)系列 -- 目錄
上一篇:自定義 Android Gradle -- 配置簽名信息
下一篇:自定義 Android Gradle -- 使用混淆
在小項(xiàng)目或小團(tuán)隊(duì)中焕檬,一般都是把 APP 的簽名證書和相關(guān)密鑰放在項(xiàng)目中泛领,甚至還會(huì)放在 git 或 SVN 中债鸡,這樣做非常方便尉共,可以直接訪問(wèn)打包市咆,并且可以借助管理平臺(tái)進(jìn)行管理維護(hù)陌僵。但是簽名信息是應(yīng)用程序的重要信息押桃,屬于公司或集體的重要資源,所以要做到分級(jí)管理分蓖,保證安全。所以如何隱藏簽名信息的同時(shí)尔许,又能保證每個(gè)人可以使用簽名信息打包就很有必要么鹤。
簽名信息不能放在項(xiàng)目中,也不能放在開(kāi)發(fā)者個(gè)人的電腦中味廊,那就只能放在服務(wù)器上了蒸甜。把簽名文件和密鑰信息放在服務(wù)器上,需要發(fā)布的正式簽名包只在簽名服務(wù)器上進(jìn)行打包即可余佛。
舉個(gè)栗子柠新,在 build.gradle 中可以如下配置:
android {
compileSdk 31
signingConfigs {
def appStoreFile = System.getenv("STORE_FILE")
def appStorePassword = System.getenv("STORE_PASSWORD")
def appKeyAlias = System.getenv("KEY_ALIAS")
def appKeyPassword = System.getenv("KEY_PASSWORD")
// 當(dāng)不能從環(huán)境變量中獲取到簽名信息的時(shí)候,就用項(xiàng)目中帶的 debug 簽名
if (!appStoreFile || !appStorePassword || !appKeyAlias || !appKeyPassword) {
appStoreFile = "debug.keystore"
appStorePassword = "android"
appKeyAlias = "androiddebugkey"
appKeyPassword = "android"
}
release {
storeFile file(appStoreFile)
storePassword appStorePassword
keyAlias appKeyAlias
keyPassword appKeyPassword
}
}
...
}
- 配置好上面的代碼后辉巡,如果是服務(wù)器管理員在服務(wù)器打包恨憎,則會(huì)使用正式發(fā)布的簽名信息。如果是開(kāi)發(fā)者在自己的電腦上打包郊楣,則會(huì)使用 Android 自帶的 debug 簽名信息憔恳。如果有的開(kāi)發(fā)者也需要使用正式版本的簽名信息,比如用于升級(jí)測(cè)試等目的净蚤,也是可以做到钥组,比如在服務(wù)器上開(kāi)通一個(gè)臨時(shí)賬戶等的操作。