每个构建类型和风味的Android应用程序名称

时间:2016-07-05 03:06:04

标签: android android-gradle

我的应用程序有多个构建类型风格 gradle。

buildTypes {
    release {}
    test {}
    debug {}
}
productFlavors {
    europe {}
    asia {}
}

如何根据构建类型和风格的组合命名应用程序?

例:
风味欧洲将具有应用名称 AppEurope
BuildType 测试将添加" 测试"应用名称后面的后缀 AppEuropeTest

2 个答案:

答案 0 :(得分:1)

我在表盘中面临同样的问题,并尝试将依赖于风味的应用程序名称与依赖于构建类型的应用程序标签值相结合。我最后这样做了:

  1. 使用build.gradle中的manifestPlaceholder注入特定于buildType的字符串资源链接:
  2. 在build.gradle文件中:

    buildTypes {
      release {
        manifestPlaceholders = [ applicationLabel: "@string/app_name"]
      }
      debug {
         manifestPlaceholders = [ applicationLabel: "@string/app_name_dev" ]
      }
    }
    

    在AndroidManifest.xml中:

    <application
       [..]
       android:label="${applicationLabel}">
    

    在strings.xml文件中:

    <resources>
      <string name="app_name">Classic &amp; Essential</string>
      <string name="app_name_dev">Classic &amp; Essential (DEV)</string>
    </resources>
    
    1. 使用特定于风味的string.xml资源文件版本来覆盖flavor的值。
    2. 我还在我的一篇博文中描述了这一点: https://www.journal.deviantdev.com/android-build-type-app-name-label/

答案 1 :(得分:0)

您的问题已在此处得到解答 -

How to change app name per Gradle build type

  

为所有构建类型创建单独的string.xml版本   味道。

这里有一个示例项目。

https://github.com/commonsguy/cw-omnibus/tree/master/Gradle/HelloBuildType

  

编辑1

android.sourceSets.europe {
    res.srcDirs = ['flavor_resources/europe/res']
}

android.sourceSets.europe.debug {
    res.srcDirs = ['flavor_resources/europe/debug/res']
}