2017-10-28 78 views
3
flavorDimensions "app" 
    productFlavors { 
     dev { 
      resValue "string", "base_url", "http://mydevurl/" 
      dimension "app" 
     } 
     prod { 
      resValue "string", "base_url", "http://myprodurl/" 
      dimension "app" 
     } 
    } 
    applicationVariants.all { variant -> 
     def flavor = variant.mergedFlavor 
     def versionName 
     if (variant.buildType.isDebuggable()) { 
      versionName = "debug_0.1.1" 
     }else{ 
      versionName = "0.1.1" 
     } 
     flavor.versionName = versionName 
     flavor.versionCode = 50 
    } 

上面的gradle设置工作正常,直到Gradle 3.0更新。找不到任何与网站相关的内容。如何管理基于这个新的flavorDimension更改的动态版本控制?Gradle版本号和versionCode在3.0更新后不工作

回答

5

通过使用VariantOutput.setVersionCodeOverride()和VariantOutput.setVersionNameOverride(),您可以使用3.0 Android Gradle插件动态设置versionCode和versionName。

为您的项目,这将是这个样子:

applicationVariants.all { variant -> 
    def flavor = variant.mergedFlavor 
    def versionName 
    if (variant.buildType.isDebuggable()) { 
     versionName = "debug_0.1.1" 
    }else{ 
     versionName = "0.1.1" 
    } 
    flavor.versionName = versionName 
    flavor.versionCode = 50 
    variant.outputs.all { output -> 
     output.setVersionNameOverride(versionName) 
     output.setVersionCodeOverride(50) 
    }  
} 

参考:https://issuetracker.google.com/issues/63785806#comment6

+0

感谢您的更新和通知让这个问题。我更新了答案并删除了一些不必要的代码部分。 –

相关问题