android 修改build.gradle 同时编译多个apk 签名和非签名


def  verCode(){
     return  Integer.valueOf( new  Date().format( 'yyyyMMdd'))
}
def  verCode2( v){
     return  Integer.valueOf(verCode()+ '0'+v)
}

android {
    compileSdkVersion  23
    buildToolsVersion  "23.0.1"

    defaultConfig {
        applicationId  "com.rnandroidsdks"
        minSdkVersion  16
        targetSdkVersion  22
        versionCode verCode()
        versionName  "1.0"
        ndk {
            abiFilters  "armeabi-v7a""x86"
        }
    }

    signingConfigs {
        release {
            storeFile file(MYAPP_RELEASE_STORE_FILE)
            storePassword MYAPP_RELEASE_STORE_PASSWORD
            keyAlias MYAPP_RELEASE_KEY_ALIAS
            keyPassword MYAPP_RELEASE_KEY_PASSWORD
        }
        
    }
    splits {
        abi {
            reset()
            enable enableSeparateBuildPerCPUArchitecture
            universalApk  false   // If true, also generate a universal APK
            include  "armeabi-v7a""x86"
        }
    }


     // 命令  asseble[T|D|A][Release|Release2] asseble[渠道首字母大写][类型首字母大写] 
     // 同时编译三个渠道两个类型共6个apk 
     // cd android && ./gradlew assembleRelease && ./gradlew assembleRelease2
     // 筛选编译4个apk 
     // cd android && ./gradlew assembleRelease && ./gradlew assembleARelease2

     // 类型 
    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile( "proguard-android.txt"),  "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
        release2 {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile( "proguard-android.txt"),  "proguard-rules.pro"
        }
    }

    // 渠道
    productFlavors {

        t {
            applicationId  "com.rnandroidsdks.t"
            versionCode verCode2( '0')
            resValue  "string""app_name""销售t"
        }
        d {
            applicationId  "com.rnandroidsdks.d"
            versionCode verCode2( '1')
            resValue  "string""app_name""销售d"
        }
        a {
            applicationId  "com.rnandroidsdks"
            versionCode verCode()
            resValue  "string""app_name""销售"
        }

    }
     // applicationVariants are e.g. debug, release
    applicationVariants.all {  variant ->
        variant.outputs.each {  output ->
             // For each separate APK per architecture, set a unique version code as described here:
             // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits
             def versionCodes = [ "armeabi-v7a": 1"x86": 2]
             def abi = output.getFilter( OutputFile.ABI)

             def outputFile = output.outputFile
             def today =  new  Date().format( 'yyyyMMdd-HH-mm/')

             // def today2 = new Date().format('yyyyMMdd')
             // defaultConfig.versionCode = Integer.valueOf(new Date().format('yyyyMMdd'))


             if (outputFile !=  null && outputFile.name.endsWith( 'apk')) {
                 def ver =  "" + defaultConfig.versionName
        
                 def versionDot =  'v' + ver
                 def fileNameoldre = outputFile.name.replace( 'app'"销售_${versionDot}")
                fileNameoldre = fileNameoldre.replace( 'release', 'r')
                fileNameoldre = fileNameoldre.replace( 'debug', 'd')
                output.outputFile =  new  File(outputFile.parent, fileNameoldre)
            }

             if (abi !=  null) {   // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) *  1048576 + defaultConfig.versionCode
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值