Android Gradle signing 編譯打包apk的幾種辦法
1.通常打包signing辦法
通常情況下我們編譯打包都是手動進行的。
2.在Gradle內部配置signing辦法
其實我們可以通過設置Build Variants
來進行buildTypes
設置使用Gradle自動進行簽名打包。
比如Build Variants
設置成release選項
接着就開始配置信息設置了設置之後大概是這樣的
signingConfigs {
release {
keyAlias 'xxxx'
keyPassword '**********'
storeFile file('../xxxx/release.jks')
storePassword '**********'
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
3.加載外部配置文件signing辦法
可是這樣當你提交文件的時候,signingConfigs配置的詳細信息如密碼就提交到服務器了,這樣不太友好。其實我們可以通過調用配置文件的方式來解決這個問題。
首先新建配置文件名稱爲signing.properties
RELEASE_STORE_FILE=../xxxx/release.jks
RELEASE_STORE_PASSWORD=**********
RELEASE_KEY_ALIAS=xxxx
RELEASE_KEY_PASSWORD=**********
然後把signing.properties
添加到提交忽略文件中如.gitignore
# Ignore gradle files
signing.properties
接着在./app/build.gradle
文件中配置加載配置文件信息信息
/**
* 加載簽名配置文件
*/
def loadSigningConfigs() {
def Properties props = new Properties()
def propFile = file('../signing.properties')
if (propFile.canRead()) {
props.load(new FileInputStream(propFile))
if (props != null && props.containsKey('RELEASE_STORE_FILE') && props.containsKey('RELEASE_STORE_PASSWORD') &&
props.containsKey('RELEASE_KEY_ALIAS') && props.containsKey('RELEASE_KEY_PASSWORD')) {
android.signingConfigs.release.storeFile = file(props['RELEASE_STORE_FILE'])
android.signingConfigs.release.storePassword = props['RELEASE_STORE_PASSWORD']
android.signingConfigs.release.keyAlias = props['RELEASE_KEY_ALIAS']
android.signingConfigs.release.keyPassword = props['RELEASE_KEY_PASSWORD']
} else {
android.buildTypes.release.signingConfig = null
}
} else {
android.buildTypes.release.signingConfig = null
}
}
最後調用配置信息就可以了
android {
signingConfigs {
release {
}
}
loadSigningConfigs()
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}