我想做的是创建 6 个不同的变体,每个变体几乎没有 AndroidManifest。数据是动态计算的,不能简单variant/AndroidManifest.xml
的手动输入。
当我为特定变体运行构建脚本时,比如“TinyDebug”,它并没有做我想做的事情。在这种情况下,我希望它具有版本代码 1501。
我在这里对脚本进行了大量编辑,以使其更具可读性。由于数据计算的复杂性,我宁愿将它们放在一个任务中(初始化任务依赖于该任务)。
问题:为什么 AndroidManifest 中的 version_code 计算不正确?我应该如何执行我的计算,以便他们可以考虑风味,并将他们的输出传递给AndroidManifest.xml
?
构建.gradle
def int version_code_suffix = -1 //-1 means it is erronous or unset
task initialize{
doFirst{
android.productFlavors.tiny {
version_code_suffix = 1
}
}
}
android {
productFlavors {
tiny {
versionCode 1500 + version_code_suffix
}
}
tasks.whenTaskAdded { task ->
if (task.name == 'processTinyDebugResources') {
task.dependsOn initialize
}
}
}
构建后的 AndroidManifest.xml(应该是 1501)
android:versionCode = 1499