Nehmen wir an, ich habe zwei Geschmacksrichtungen
Code: Select all
>main
>cloud
Ich habe bereits versucht, alle Berechtigungen im Hauptmanifest festzulegen und sie dann im Flavor-Manifest zu entfernen:
Code: Select all
@edit
Unten finden Sie die Dimensionen und Definitionen meiner Gradle-Variante:
Code: Select all
def enableCrashlyticsInDebugBuild = false
def enableCrashlyticsInReleaseBuild = true
buildTypes {
release {
minifyEnabled true
firebaseCrashlytics {
mappingFileUploadEnabled true
}
proguardFile 'proguard.cfg'
manifestPlaceholders = [crashlyticsEnabled:"${enableCrashlyticsInReleaseBuild}"]
}
debug {
manifestPlaceholders = [crashlyticsEnabled:"${enableCrashlyticsInDebugBuild}"]
}
}
flavorDimensions "environment", "distribution"
productFlavors {
enterprise {
dimension 'distribution'
}
store {
dimension 'distribution'
}
sampleBuildType {
dimension 'environment'
signingConfig signingConfigs.sampleConfig
applicationId "com.sample.sampleBuildType"
buildConfigField "String", "DEFAULT_APP_THEME", "\"DARK\""
buildConfigField "String", "APP_CATEGORY", "\"ENTERPRISE\""
}
cloud {
dimension 'environment'
signingConfig signingConfigs.cloudConfig
applicationId "com.app.sample.Cloud"
buildConfigField "String", "DEFAULT_APP_THEME", "\"DARK\""
buildConfigField "String", "APP_CATEGORY", "\"ENTERPRISE\""
}
Code: Select all
variantFilter { variant ->
def names = variant.flavors*.name
if (names.contains("store") && !names.contains("cloud_prod")) {
setIgnore(true)
}
if (names.contains("enterprise") && names.contains("cloud_prod")) {
setIgnore(true)
}
}
Mobile version