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

How to add product flavor to version name in Gradle

我有一个 Android Gradle 项目有多种风格。

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

        orange {
            applicationId "com.myapp.orange"
        }

        banana {
            applicationId "com.myapp.banana"
        }
    }
    ...
}

在我的 build.gradle 中,我还有以下代码将 versionName 设置为 0.8-dev 如果它是本地构建或 0.8-123 如果是 Jenkin 的构建。

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

因为我现在对同一个项目有不同的风格,我想在 versionName 前加上风格,所以它看起来像这样 apple-0.8-devorange-0.8-dev,具体取决于构建的风味。

我该怎么做?

我试过使用 BuildConfig.FLAVOR 但我无法在 build.gradle 中访问它。

在您的口味中重新定义 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"
        }
    }
    ...
}