如何在Gradle中向版本名称添加产品风味

Fil*_*ero 3 android gradle build.gradle android-gradle-plugin

我有一个Android Gradle项目,有多种风格,如此.

android {
    ...
    productFlavors {
        apple {
            applicationId "com.myapp.apple"
        }

        orange {
            applicationId "com.myapp.orange"
        }

        banana {
            applicationId "com.myapp.banana"
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

在我的build.gradle我也有下面的代码片段,如果它是本地构建,则设置versionName0.8-dev,如果是Jenkin的构建,则设置为0.8-123.

android {
    ...
    defaultConfig {
        ...
        // Get the build number from Jenkins, otherwise use 'dev'
        ext.buildNumber = System.getenv("BUILD_NUMBER") ?: "dev"
        versionName "0.8-$buildNumber"
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

由于我现在对同一个项目有不同的风格,我想给versionName它加上风味的前缀,所以它看起来像这个apple-0.8-devorange-0.8-dev,这取决于它的味道.

我该怎么做呢?

我尝试过使用BuildConfig.FLAVOR但我无法访问build.gradle.

Com*_*are 10

重新定义versionName你的口味:

def version="0.8"

android {
    defaultConfig {
      versionName version
    }
    ...
    productFlavors {
        apple {
            applicationId "com.myapp.apple"
            versionName "apple-$version"
        }

        orange {
            applicationId "com.myapp.orange"
            versionName "orange-$version"
        }

        banana {
            applicationId "com.myapp.banana"
            versionName "banana-$version"
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)