[英]Product Flavors Configurations in Android
我對Product Flavors
完全Product Flavors
並且已經通過許多鏈接來了解它。 但是,仍有一些疑問尚不清楚。 我有3種產品口味,即: qa
, dev
和prod
。 我僅創建了這三種產品樣式,因為我需要通過創建3個不同的程序包並將相同的java
(具有URL)文件放置在app/src
目錄中來更改URL和針對不同樣式的一些API密鑰。 這就是我的build.gradle
。 我需要在每種口味中添加哪些強制性內容? 與以下內容有關: proguard
, signingConfigs
:
android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion 26
buildToolsVersion '26.0.2'
flavorDimensions "default"
defaultConfig {
applicationId "com.sagar.demo"
minSdkVersion 21
targetSdkVersion 25
multiDexEnabled true
versionCode 67
versionName "1.0.0" //Update Version build number
vectorDrawables.useSupportLibrary = true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
signingConfigs {
release {
storeFile file("myKeystore")
storePassword "Keystore2017"
keyAlias "SagarSuri"
keyPassword "Keystore2020"
}
}
buildTypes {
debug {
debuggable true
minifyEnabled false // shrink
useProguard false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true
useProguard true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
productFlavors {
qa {
dimension "default"
}
prod {
dimension "default"
signingConfig signingConfigs.release
}
dev {
dimension "default"
}
}
}
產品風味的工作方式是,最終將每個dimension
風味數量乘以buildTypes
的數量,在這種情況下,您在一個維度中有3種風味,並且有2種構建類型,最終以3x2 = 6生成變體如下:
每個組合都是相關產品風味配置和相關構建類型配置的實際組合。 變體qaDebug
含義是,其配置來自qa
下定義的和來自debug
下定義的組合。 因此,如果debug
已經定義了proguardFiles
則通常無需在qa
定義它,除非qa
為其自己的代碼需要額外的proguard配置,則這是另一回事,需要確定,因此應該針對每種口味(而不是每種口味)定義proguard在構建類型中。
我想指出的另一個方面是signingConfig
,這里為prod
和release
定義了相同的值。 這意味着任何以prod
開頭或以Release
結尾的組合都將設置signingConfig
,在這種情況下為: qaRelease
, prodDebug
, prodRelease
和devRelease
。
因此,配置實際上取決於您的選擇和設計,並且並非所有項目都具有相同的配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.