我在 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
}
}
两种风格我都有不同的密钥存储。我可以为不同的构建类型指定不同的密钥库,例如调试/发布,但如何为每种风格指定不同的密钥库。
使用以下
gradle
您可以实现多种产品风味:
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 {
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
}
}
}
storePassword=...
keyPassword=..
keyAlias=...
storeFile=src/flavor_name/keystore_file.jks //or any other path of jks file
你可以使用这样的东西:
android {
signingConfigs {
dev {
}
staging {
}
}
productFlavors {
dev {
signingConfig signingConfigs.dev
}
staging {
signingConfig signingConfigs.staging
}
}
}
对我来说,在构建时,它会使用发布签名配置。
1。创建所需数量的签名配置 2. 在“productFlavors”中指定“signingConfig”而不是“buildTypes”并享受乐趣。
signingConfigs {
funnyRelease {
// do stuff
}
debug {
storeFile file('debug.keystore')
storePassword 'android'
keyAlias 'androiddebugkey'
keyPassword 'android'
}
}
buildTypes {
release {
// !!!do not specify signing on the build type!!!
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-
android.txt"),"proguard-rules.pro"
}
}
productFlavors {
flavorOne {
// signing for "flavorOne" specified as debug
signingConfig signingConfigs.debug
}
flavourTwo {
// signing for "flavourTwo" specified as funnyRelease
signingConfig signingConfigs.funnyRelease
}
}