Могу ли я как-то добавить/не добавлять определенное разрешение на манифест для определенных вариантов?
Предположим, у меня есть 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
Как добавить разрешения на основе вкуса в манифест Android с помощью Gradle ⇐ Android
Форум для тех, кто программирует под Android
1767087823
Anonymous
Могу ли я как-то добавить/не добавлять определенное разрешение на манифест для определенных вариантов?
Предположим, у меня есть 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)
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/75789489/how-to-add-permissions-based-on-flavor-to-android-manifest-using-gradle[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия