gradle 多渠道打包知识总结

1: gradle 中添加BuildConfig 属性

buildConfigField "String", "WEB_VERSION", "\"1.0.6\""

2:多渠道打包资源选择

    productFlavors {
        ft{
            applicationId 'com.hytch.TravelTicketing'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            targetSdkVersion 27
            manifestPlaceholders = [
                    JPUSH_PKGNAME: "xxxxxx",
                    JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
                    JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
            ]
            resValue "string", "AppName", "方特票务通"
            buildConfigField "String", "SERVER_ADDR", "\"XXXXXX\""
        }
        beta {
            applicationId 'com.hytch.TravelTicketing.Beta'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            targetSdkVersion 27
            manifestPlaceholders = [
                    JPUSH_PKGNAME: "xxxxxx",
                    JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
                    JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
            ]
            resValue "string", "AppName", "票务通Beta"
            buildConfigField "String", "SERVER_ADDR", "\"XXXXXXXX\""
            buildConfigField "String", "WEB_VERSION", "\"2.4.3\""
        }
    }

   sourceSets {
        beta {
            assets.srcDirs = ['src/main/beta_assets/']
        }
    }

3:Mainefest 配置

android:authorities="${JPUSH_PKGNAME}.DataProvider"

        manifestPlaceholders = [
                    JPUSH_PKGNAME: "xxxxxx",
                    JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
                    JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
            ]

示例源码如下:

apply plugin: 'com.android.application'
apply plugin: 'AndResGuard'

def releaseTime() {
    return new Date().format("MM-dd_HH-mm", TimeZone.getTimeZone("Asia/Shanghai"))
}

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "XXXXXXXXXXXXXXXXXX"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 2
        versionName "1.0.2"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true

        ndk {
            //选择要添加的对应 cpu 类型的 .so 库。
            abiFilters 'armeabi'
            // 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
        }
        multiDexEnabled true
        flavorDimensions "versionCode"
        buildConfigField "String", "WEB_VERSION", "\"1.0.6\""
    }

    productFlavors {
        ft{
            applicationId 'com.hytch.TravelTicketing'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            targetSdkVersion 27
            manifestPlaceholders = [
                    JPUSH_PKGNAME: "xxxxxx",
                    JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
                    JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
            ]
            resValue "string", "AppName", "方特票务通"
            buildConfigField "String", "SERVER_ADDR", "\"XXXXXX\""
        }
        beta {
            applicationId 'com.hytch.TravelTicketing.Beta'
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            targetSdkVersion 27
            manifestPlaceholders = [
                    JPUSH_PKGNAME: "xxxxxx",
                    JPUSH_APPKEY : "xxxxxxxxx", //测试 Appkey
                    JPUSH_CHANNEL: "xxxxxxx", //暂时填写默认值即可.
            ]
            resValue "string", "AppName", "票务通Beta"
            buildConfigField "String", "SERVER_ADDR", "\"XXXXXXXX\""
            buildConfigField "String", "WEB_VERSION", "\"2.4.3\""
        }
    }

    signingConfigs {
        fangte {
         ...
        }
    }
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            zipAlignEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.fangte
        }
        debug {
            minifyEnabled false
            shrinkResources false
            zipAlignEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.fangte
        }
    }
    android.applicationVariants.all { variant ->
        variant.outputs.all { output ->
            outputFileName = "TravelTicketing_"+variant.productFlavors[0].name+
                    "v" + variant.versionName +
                    "_T" + releaseTime() +
                    variant.buildType.name+".apk"
        }
    }

    sourceSets {
        beta {
            assets.srcDirs = ['src/main/beta_assets/']
        }
    }
}

dependencies {

}
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值