gpt4 book ai didi

android - 仅为某些产品口味禁用 DexGuard

转载 作者:行者123 更新时间:2023-11-30 00:38:29 26 4
gpt4 key购买 nike

我使用 DexGuard 并为 2 种构建类型(发布和调试)提供 4 种产品风格(prod、qa、dev、mock),并且我没有为调试构建启用 DexGuard,因此我得到 4 种变体(dexguardProdRelease ...dexguardMockRelease) 但是,我不想为开发和模拟版本启用 DexGuard。

我了解了 Gradle 提供的 variantFilter,但是,在这种情况下,我不知道如何使用与插件 DexGuard 相关的命令。

最佳答案

我是这样解决的:

//added to filter dexguard for these flavors
variantFilter { variant ->
def names = variant.flavors*.name

if(names.contains("mock") && variant.buildType.name == "release") {
variant.ignore = true
} else if (names.contains("dev") && variant.buildType.name == "release") {
variant.ignore = true
}
}

现在,Gradle 不会显示像 dexguardMockReleasedexguardDevRelease 这样的任务。

我通过查看过滤掉 DexGuard 而错误地解决了这个问题,而不是我应该考虑删除某些口味。以下是我的 build.gradle 的相关部分:

apply plugin: 'dexguard'
...
android {
buildTypes {
release {
proguardFile getDefaultDexGuardFile('dexguard-release-aggressive.pro')
proguardFile 'dexguard-project.pro'
}
debug {
//dontshrink, dontoptimize and dontobfuscate are turned off
}
}

productFlavors {
prod {
...
}
qa {
...
}
dev {
...
}
mock {
...
}
}
//added to filter dexguard for these flavors
variantFilter { variant ->
def names = variant.flavors*.name

if(names.contains("mock") && variant.buildType.name == "release") {
variant.ignore = true
} else if (names.contains("dev") && variant.buildType.name ==
"release") {
variant.ignore = true
}
}
}

关于android - 仅为某些产品口味禁用 DexGuard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986599/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com