每一个flavor都是通过闭包来配置的:
android { ... defaultConfig { minSdkVersion 8 versionCode 10 } productFlavors { flavor1 { packageName "com.example.flavor1" versionCode 20 } flavor2 { packageName "com.example.flavor2" minSdkVersion 14 } } }
注意_ProductFlavor_类型的android.productFlavors.*对象与android.defaultConfig对象的类型是相同的。这意味着它们共享相同的属性。
android.productFlavors.*
android.defaultConfig
defaultConfig为所有的flavor提供基本的配置,每一个flavor都可以重设这些配置的值。在上面的例子中,最终的配置结果将会是:
defaultConfig
* `flavor1` * `packageName`: com.example.flavor1 * `minSdkVersion`: 8 * `versionCode`: 20 * `flavor2` * `packageName`: com.example.flavor2 * `minSdkVersion`: 14 * `versionCode`: 10
通常情况下,_Build Type_的配置会覆盖其它的配置。例如,_Build Type_的packageNameSuffix会被追加到_Product Flavor_的packageName上面。
packageNameSuffix
packageName
也有一些情况是一些设置可以同时在_Build Type_和_Product Flavor_中设置。在这种情况下,按照个别为主的原则决定。
例如,signingConfig就这种属性的一个例子。 signingConfig允许通过设置android.buildTypes.release.signingConfig来为所有的release包共享相同的SigningConfig。也可以通过设置android.productFlavors.*.signingConfig来为每一个release包指定它们自己的SigningConfig。
signingConfig
android.buildTypes.release.signingConfig
release
android.productFlavors.*.signingConfig
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8