Android产品风味版本名称后缀

11

我正在使用 buildTypes 和 productFlavors。我的应用还使用了一个分析工具,该工具使用了我的应用程序的 versionName。

我如何针对每个 flavor 更改 versionName?我的测试是

productFlavors {
    google {
        versionNameSuffix ".google"
    }
}

但是它失败了。有人有什么想法可以根据口味自定义versionName吗?

更新

显然,Gradle Android插件的2.2.0版本现在允许在productFlavors中设置versionNameSuffix。


有运气了吗?当我尝试时,出现了“Gradle同步失败:找不到Gradle DSL方法:'versionNameSuffix()'”的错误。 - Sunkas
你的更新节省了我的时间。谢谢。 - Tushar
2个回答

4

我还在努力学习中,但这似乎是有效的:

productFlavors {
    development {
        versionName = android.defaultConfig.versionName + (System.getenv("BUILD_NUMBER") as Integer ? "-build" + System.getenv("BUILD_NUMBER") as Integer : "-developerBuild")
    }
}

因此,我们可以在defaultConfig中设置versionName,在构建服务器上设置环境变量BUILD_NUMBER,因此最终的版本名称为:1.2-build1234生产环境版本只使用默认配置,所以只是1.2,在开发机器上构建时,环境变量未设置,因此其版本名称为 1.2-developerBuild。今晚刚想出这个计划(所以肯定可以简化),正在努力将最新的源代码控制修订版添加到开发机器上,但我已经看到其他解决方法。

0
您可以通过flavor设置整个版本名称,就像这样:
productFlavors {
    flavor_a {
        versionName 'Version_A'
    }
    flavor_b {
        versionName 'Version_B'
    }
}
defaultConfig {
    versionName 'Default_version_name'
}

如果一个口味没有指定版本名称,它将从defaultConfig中获取。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接