目錄
一、前言
二、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 配置,請進傳送門
如果覺得本篇博文對你有所啓發或是解決了困惑,給個贊或關注我呀,小盆友會繼續分享更多的優質文章。
或是請我喝杯咖啡吧,小盆友會更加信心百倍的寫下去