簡體   English   中英

Android中的產品口味配置

[英]Product Flavors Configurations in Android

我對Product Flavors完全Product Flavors並且已經通過許多鏈接來了解它。 但是,仍有一些疑問尚不清楚。 我有3種產品口味,即: qadevprod 我僅創建了這三種產品樣式,因為我需要通過創建3個不同的程序包並將相同的java (具有URL)文件放置在app/src目錄中來更改URL和針對不同樣式的一些API密鑰。 這就是我的build.gradle 我需要在每種口味中添加哪些強制性內容? 與以下內容有關: proguardsigningConfigs

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
  • qaRelease
  • prodDebug
  • prodRelease
  • devDebug
  • devRelease

每個組合都是相關產品風味配置和相關構建類型配置的實際組合。 變體qaDebug含義是,其配置來自qa下定義的和來自debug下定義的組合。 因此,如果debug已經定義了proguardFiles則通常無需在qa定義它,除非qa為其自己的代碼需要額外的proguard配置,則這是另一回事,需要確定,因此應該針對每種口味(而不是每種口味)定義proguard在構建類型中。

我想指出的另一個方面是signingConfig ,這里為prodrelease定義了相同的值。 這意味着任何以prod開頭或以Release結尾的組合都將設置signingConfig ,在這種情況下為: qaReleaseprodDebugprodReleasedevRelease

因此,配置實際上取決於您的選擇和設計,並且並非所有項目都具有相同的配置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM