Android build.gradleでbuildConfigFieldを使用してパラメータを動的に設定し、defは変数を宣言します.

3002 ワード

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

apply from: 'dependency.gradle'

android {
    compileSdkVersion 28
    def ALI_APP_KEY_RELEASE = "\"xx\""  //        \",       int  
    def ALI_APP_KEY_TEST = "\"xxxx\""
    defaultConfig {
        applicationId "com.xx.xxxx"
        minSdkVersion 18
        targetSdkVersion 28
        versionCode 13
        versionName "1.1.3"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
        ndk {
            abiFilters "armeabi"  //   v7a
        }
        //Glide 9.0    
        vectorDrawables.useSupportLibrary = true
        compileOptions {
            targetCompatibility JavaVersion.VERSION_1_8
            sourceCompatibility JavaVersion.VERSION_1_8
        }
    }
    // APK   
    applicationVariants.all { variant ->
        variant.outputs.all { output ->// each    all
            def fileName = "APP-${variant.versionName}-${variant.buildType.name}-Release.apk"
            def outFile = output.outputFile
            if (outFile != null && outFile.name.endsWith('.apk')) {
                outputFileName = fileName  //  output.outputFile    outputFileName
            }
        }
    }

    signingConfigs {

        release {
            storeFile file("D:\\") //      
            storePassword ""
            keyAlias ""
            keyPassword "" //    
            v1SigningEnabled true
            v2SigningEnabled true
        }
        debug {
            storeFile file("D:\\") //      
            storePassword ""
            keyAlias ""
            keyPassword "" //    
            v1SigningEnabled true
            v2SigningEnabled true
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            //   signingConfigs      
            signingConfig signingConfigs.release
            //$ALI_APP_KEY_RELEASE          
            buildConfigField "String", "ALI_APP_KEY", "$ALI_APP_KEY_RELEASE"
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            /*
            *    signingConfigs      (                  ,    Android         , 
            * Debug   ,    ,    debug              ,     debug   ,APP     )
            */

            signingConfig signingConfigs.debug
            //$ALI_APP_KEY_RELEASE          
            buildConfigField "String", "ALI_APP_KEY", "$ALI_APP_KEY_TEST"
        }
    }
}

注意:buildConfigFieldはbuildTypeで構成されています.