我需要设置两种不同的Android构建类型,即staging
和release
。
defaultConfig {
applicationId "com.app.testing"
minSdkVersion 19
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "SERVER_URL", '"http://testing.com"'
}
dev {
applicationIdSuffix ".dev"
buildConfigField "String", "SERVER_URL", '"http://testing.com"'
}
现在我想为每个构建类型添加versionName
。我怎么能这样做?
productFlavors{
release {
versionname = "1.0"
}
dev{
versionname = "1.0"
}
}
答案 0 :(得分:4)
您可以使用如下所示的productFlavors:
productFlavors
{
test
{
applicationId 'com.example.test'
versionName '1.0.0.test'
versionCode 1
}
product
{
applicationId 'com.example.product'
versionName '1.0.0.product'
versionCode 1
}
}
您可以在默认配置下定义它。您可以从构建变体进行更改。您可以将构建类型与风格组合在一起。
祝你好运。答案 1 :(得分:0)
版本代码可以是次要版本,例如:
defaultConfig {
applicationId "com.app.testing"
minSdkVersion 19
targetSdkVersion 23
versionCode 3.2.1
versionName "1.0"
}
在上面的例子中,3表示一个主要版本,它大大更新了应用程序的外观或功能。 2表示错误修复/改进,以某种方式更新应用程序,而1表示次要更新或修复。
希望这有帮助。
答案 2 :(得分:0)
您还可以为每个构建类型使用不同的版本名称,而不使用 flavor
在app-module build.gradle中:
defaultConfig {
...
versionName ""
}
...
buildTypes {
debug {
...
versionNameSuffix 'debug-version-1'
...
}
release {
...
versionNameSuffix 'version 1'
...
}
}
versionName"" 做了这个伎俩。
答案 3 :(得分:-1)
我需要设置两种不同的android构建类型,即staging和 释放。
定义buildTypes
如上所述,您已正确定义了两个buildTypes,“release”和“dev”。
现在我想为每个构建类型添加versionName。我怎么能这样做?
通过buildTypes迭代
为不同的buildType定义versionName(或任何其他defaultConfig参数)的一种简洁且更具编程性的方法是迭代所有应用程序变体并使用if语句对buildTypes执行特定操作:
android {
...
defaultConfig {
...
applicationVariants.all { variant ->
if(variant.buildType.name == "release") {
//Release
versionName "1.2.3"
} else if(variant.buildType.name == "dev") {
//Dev
versionName "3.2.1"
}
}
}
}