我正在使用android-studio 0.5.9和gradle。我想为每个市场进行构建,所以我决定创建一些像这样的构建类型
buildTypes {
englishAlpha {
runProguard false
packageNameSuffix '.alpha.en'
versionNameSuffix '-DEV'
signingConfig signingConfigs.debug
zipAlign true
}
germanAlpha {
runProguard false
packageNameSuffix '.alpha.de'
versionNameSuffix '-DEV'
signingConfig signingConfigs.debug
zipAlign true
}
englishBeta {
runProguard false
packageNameSuffix '.beta.en'
signingConfig signingConfigs.debug
}
germanBeta {
runProguard false
packageNameSuffix '.beta.de'
signingConfig signingConfigs.debug
}
}
问题是当我想要更新drawables(每个市场都有自己的drawables)时,我必须立即更新两个目录(alpha& beta)和三个稍后(发布)一个市场。
是否有办法在所有buildVariant的两个目录(EN和DE)中包含所有drawable?
提前谢谢
答案 0 :(得分:1)
您可以将产品flavor与buildTypes结合使用来创建buildVariant。 buildVariants将是笛卡尔积:buildType X productFlavor
在您的情况下,创建2种产品风格:alpha
和beta
以及2种构建类型:german
和english
packageNameSuffix仅在buildType中允许。 您可以在flavor中使用packageName,因此build.gradle必须如下所示:
android {
productFlavors {
alpha {
packageName 'com.company.alpha'
}
beta {
packageName 'com.company.beta'
}
}
buildTypes {
english {
packageNameSuffix '.en'
}
german {
packageNameSuffix '.de'
}
}
}
如果你放置了drawables:
src/english/res/drawable-*/
src/german/res/drawable-*/
src/main/res/drawable-*/
这将为您提供4种构建变体,其中包含2组不同的drawable(一种用于英语,一种用于德语)