【发布时间】:2015-07-09 13:58:25
【问题描述】:
我需要根据使用的产品风格创建不同的应用名称。
虽然这很容易通过简单地设置一个字符串资源,但我不能再这样做了,因为当应用程序上传到 hockeyapp 时,应用程序名称被设置为“@string/app_name”而不是 app_name 的值。
通过将清单中的标签设置为“${applicationName}”并使用
设置值,我取得了一些进展manifestPlaceholders = [ applicationName : appName ];
在产品风味块中,以便在编译时设置值。
当我尝试将构建类型附加到应用程序名称时,问题就出现了。我似乎无法找到一种方法来了解产品风格中当前使用的构建类型。
为了便于阅读,这是一个精简的构建版本
android {
buildVersionName "1.0.0
buildTypes {
release {
... nothing special
}
uat {
signingConfig signingConfigs.debug
buildType = "uat"
applicationIdSuffix = "." + buildType
}
debug {
signingConfig signingConfigs.debug
buildType = "uat"
applicationIdSuffix = "." + buildType
}
}
productFlavors{
flavor1{
def appName = "app name " + buildType;
manifestPlaceholders = [ applicationName : appName ];
applicationId [id]
def clientIteration = [client iteration]
versionName buildVersionName + clientIteration
versionCode [version code]
}
flavor2{
... same as above with different app name
}
flavor3{
... same as above with different app name
}
}
}
此代码运行良好,除了变量“buildType”始终是最后一个构建类型(在本例中为 debug),这意味着应用名称始终以 debug 结尾。
可能值得注意的是,我不需要在应用名称的末尾附加任何内容。
【问题讨论】:
标签: android build gradle android-gradle-plugin build.gradle