Gradle 中不同产品口味的不同 keyStore
Different keyStore for different product flavors in Gradle
我的 build.gradle 文件中指定了不同的 productFlavors
dev {
applicationId "com.advancedprogressive.chare.dev"
versionCode 83
versionName "2.2.1"
}
staging {
applicationId "com.advancedprogressive.chare.qa"
versionCode 119
versionName "2.8.1"
}
并且有像
这样的签名配置
signingConfigs {
release {
storeFile
storePassword
keyAlias
keyPassword }
debug {
keyPassword
storeFile
keyAlias
storePassword
}
}
两种口味我都有不同的键控器。我可以为不同的构建类型指定不同的密钥库,例如 debug/release 但我如何为每种风格指定不同的密钥库。
使用下面的 gradle
你可以实现多个 productFlavors :
android {
signingConfigs {
release {
keyAlias 'alias'
keyPassword 'password'
storeFile file('first.keystore')
storePassword 'password'
}
debug {
keyAlias 'alias'
keyPassword 'password'
storeFile file('second.keystore')
storePassword 'password'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
productFlavors{
dev {
applicationId "com.advancedprogressive.chare.dev"
versionCode 83
versionName "2.2.1"
signingConfig signingConfigs.debug
}
staging {
applicationId "com.advancedprogressive.chare.qa"
versionCode 119
versionName "2.8.1"
signingConfig signingConfigs.release
}
}
}
希望对你有所帮助
你可以这样使用:
android {
signingConfigs {
dev {
}
staging {
}
}
productFlavors {
dev {
signingConfig signingConfigs.dev
}
staging {
signingConfig signingConfigs.staging
}
}
}
您可能还想将您的凭据保存在一个单独的文件中。
在您的 app/build.gradle 文件中
android{
signingConfigs {
free {
def keystorePropertiesFile = rootProject.file("app/src/free/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
paid {
def keystorePropertiesFile = rootProject.file("app/src/paid/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
...
flavorDimensions "default"
productFlavors {
free {
applicationId "com.example.freeapp"
versionCode 1
versionName "1.0"
signingConfig signingConfigs.free
}
paid {
applicationId 'com.example.paidapp'
versionCode 1
versionName '1.0'
signingConfig signingConfigs.paid
}
}
}
在你的 app/src/flavor_name/keystore.properties
storePassword=...
keyPassword=..
keyAlias=...
storeFile=src/flavor_name/keystore_file.jks //or any other path of jks file
我的 build.gradle 文件中指定了不同的 productFlavors
dev {
applicationId "com.advancedprogressive.chare.dev"
versionCode 83
versionName "2.2.1"
}
staging {
applicationId "com.advancedprogressive.chare.qa"
versionCode 119
versionName "2.8.1"
}
并且有像
这样的签名配置signingConfigs {
release {
storeFile
storePassword
keyAlias
keyPassword }
debug {
keyPassword
storeFile
keyAlias
storePassword
}
}
两种口味我都有不同的键控器。我可以为不同的构建类型指定不同的密钥库,例如 debug/release 但我如何为每种风格指定不同的密钥库。
使用下面的 gradle
你可以实现多个 productFlavors :
android {
signingConfigs {
release {
keyAlias 'alias'
keyPassword 'password'
storeFile file('first.keystore')
storePassword 'password'
}
debug {
keyAlias 'alias'
keyPassword 'password'
storeFile file('second.keystore')
storePassword 'password'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
productFlavors{
dev {
applicationId "com.advancedprogressive.chare.dev"
versionCode 83
versionName "2.2.1"
signingConfig signingConfigs.debug
}
staging {
applicationId "com.advancedprogressive.chare.qa"
versionCode 119
versionName "2.8.1"
signingConfig signingConfigs.release
}
}
}
希望对你有所帮助
你可以这样使用:
android {
signingConfigs {
dev {
}
staging {
}
}
productFlavors {
dev {
signingConfig signingConfigs.dev
}
staging {
signingConfig signingConfigs.staging
}
}
}
您可能还想将您的凭据保存在一个单独的文件中。
在您的 app/build.gradle 文件中
android{
signingConfigs {
free {
def keystorePropertiesFile = rootProject.file("app/src/free/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
paid {
def keystorePropertiesFile = rootProject.file("app/src/paid/keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
...
flavorDimensions "default"
productFlavors {
free {
applicationId "com.example.freeapp"
versionCode 1
versionName "1.0"
signingConfig signingConfigs.free
}
paid {
applicationId 'com.example.paidapp'
versionCode 1
versionName '1.0'
signingConfig signingConfigs.paid
}
}
}
在你的 app/src/flavor_name/keystore.properties
storePassword=...
keyPassword=..
keyAlias=...
storeFile=src/flavor_name/keystore_file.jks //or any other path of jks file