[英]Including Android keystore properties file in Gradle, only in release variant
我一直在遵循本指南,以允許從專用文件加載我的 Android 密鑰庫屬性的秘密。
基本上, build.gradle
文件包含:
def keystorePropertiesFile = rootProject.file("testandroidpacketcapture/keystore.properties");
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
// ...
signingConfigs {
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
release {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
}
}
只要keystore.properties
文件存在,這就有效。 但是對於調試版本,或者對於無法訪問密鑰庫的開發人員,我想讓這種屬性加載成為可選的。
如何僅根據該文件是否可用來定義該變量?
我只能在文件exists()
,但是storeFile
中的file()
調用仍然會失敗,因為它沒有定義。
如果默認值不存在,您可以使用getProperty(key, default)
方法定義默認值。
所以,在上面,使用:
def keystorePropertiesFile = rootProject.file("testandroidpacketcapture/keystore.properties");
def keystoreProperties = new Properties()
if (keystorePropertiesFile.exists()) {
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
}
在下面,使用:
release {
storeFile file(keystoreProperties.getProperty('storeFile', 'release.keystore'))
storePassword keystoreProperties.getProperty('storePassword')
keyAlias keystoreProperties.getProperty('keyAlias')
keyPassword keystoreProperties.getProperty('keyPassword')
}
這會將默認的release.keystore
傳遞給該屬性,如果您實際上沒有構建發布 APK,這並不重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.