Могу ли я как-то добавить/не добавлять определенное разрешение на манифест для определенных вариантов?
Предположим, у меня есть 2 варианта
>main
>cloud
У меня есть разрешение REQUEST_INSTALL_PACKAGES. Я хочу иметь его в «основном» варианте, но мне не нужен «облачный» вариант. Могу ли я сделать это, используя переменные в Gradle?
Я уже пробовал подход с установкой всех разрешений в основном манифесте, а затем удалением их в дополнительном манифесте:
Но он ничего не делает, объединенный манифест по-прежнему имеет это разрешение. Поэтому я думаю, что подход с добавлением его через Gradle был бы лучше, но я действительно не знаю, как это сделать.
@edit
Ниже приведены размеры и определения моего варианта Gradle:
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\""
}
Кроме того, я нашел в Gradle некоторый код, который, как я не совсем понимаю, может иметь отношение к делу:
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)
}
}
Подробнее здесь: https://stackoverflow.com/questions/757 ... ing-gradle