如何在android构建类型中设置不同的版本号?
我需要设置两种不同的android构建类型,即如何在android构建类型中设置不同的版本号?,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我需要设置两种不同的android构建类型,即staging和release defaultConfig { applicationId "com.app.testing" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } release { minifyEnabled false prog
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:
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
}
}
您可以在默认配置下定义它。您可以从构建变体进行更改。您可以将构建类型与风格相结合
祝你好运。版本代码可能是次要版本,例如:
defaultConfig {
applicationId "com.app.testing"
minSdkVersion 19
targetSdkVersion 23
versionCode 3.2.1
versionName "1.0"
}
在上面的示例中,3表示一个主要版本,该版本将彻底更新应用程序的外观或功能。2表示以某种方式更新应用程序的错误修复/改进,而1表示较小的更新或修复
希望这能有所帮助。您也可以为每个构建类型使用不同的版本名,而无需使用风格 在应用程序模块build.gradle中:
defaultConfig {
...
versionName ""
}
...
buildTypes {
debug {
...
versionNameSuffix 'debug-version-1'
...
}
release {
...
versionNameSuffix 'version 1'
...
}
}
versionName”“成功了
我需要设置两种不同的android构建类型,即staging和
释放
定义构建类型
正如上面的问题一样,您已经正确定义了两种构建类型,“release”和“dev”
现在我想为每个构建类型添加versionName。我该怎么做
迭代构建类型
为不同的BuildType定义versionName(或任何其他defaultConfig参数)的一种干净且更具编程性的方法是迭代所有应用程序变量,并使用if语句为BuildType执行特定操作:
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"
}
}
}
}
versionName
为每种口味。buildTypes具有versionNameSuffix
,正如您可以想象的那样,它为versionName
添加了一个后缀。它是否适合您的需要?可能是@Blackbelt的重复,这给我带来了一个错误:错误:(39,0)ProductFlavor名称不能与BuildType名称冲突
。我在编辑部分定义了产品风格,实际上我们对不同的东西使用产品风格,比如“产品的付费版本”或“产品的免费版本”。另外,如果包装因产品口味不同而不同,我想你误解了我的问题。我想为所有构建类型定义versionnumber
,这是在将应用程序上载到google play时定义的。当您上传新版本的时,google play上的开发者控制台将从gradle文件中的版本代码中获取应用程序的版本号。它不允许您上载具有相同版本代码的应用程序。版本代码必须是增量的。这不会覆盖BuildConfig.java中版本名称的值。相反,is=t生成两个名为VERSION\u name的变量。VERSION_NAME=-1(即使我们没有指定,也作为默认值)VERSION_NAME=“3.2.1”(示例值)问题出现,因为在同一个类中有两个同名的变量。我希望这是一个有效的解决方案,但它给了我错误:任务执行失败:app:processDebugManifest.
它可能应该是debug
而不是dev
。
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"
}
}
}
}