2015-11-24 3 views
2

Я хотел бы, чтобы определить имя приложения, как "App ароматизатора buildType"Gradle productFlavors и buildTypes

Flavors:

dev { 
    resValue 'string', 'app_name', 'App dev' 
} 

production { 
    resValue 'string', 'app_name', 'App prod' 
} 

staging { 
    resValue 'string', 'app_name', 'App staging' 
} 

1) Как добавить в buildType (то есть "App отлаживать" лезвием, «Выпуск приложения»)

2) Как использовать конкретную строку для производства/выпуска (т.е. «Приложение»).

Я пытался что-то вроде этого:

production { 
    buildType { 
     release { 
      resValue 'string', 'app_name', 'App' 
     } 
    } 
} 

Но все ароматы релиза будут использовать эту строку.

+0

Вы также можете определить строку в Рез/значений/папки. Используйте разные папки для каждого buildVariant –

ответ

2

У меня была та же проблема, в последнее время и в конечном итоге делает что-то вроде этого

android { 
    applicationVariants.all { variant -> 
     def variantName = variant.name 
     if (variantName == "fooRelease") { 
      variant.buildConfigField "String", "BAR", '"val"' 
     } else if (variantName == "barRelease") { 
      variant.buildConfigField "String", "BAR", '"val1"' 
     } else if (variantName == "fooDebug") { 
      variant.buildConfigField "String", "BAR", '"val3"' 
     } else if (variantName == "barDebug") { 
      variant.buildConfigField "String", "BAR", '"val4"' 
     } 
    } 
}