Android 多版本多渠道打包

美团walle官网:https://github.com/Meituan-Dianping/walle
(1)在你对应主module的build.gradle的android标签内添加相应的属性(配置多渠道信息)
productFlavors {
    //开发环境
    develop {
        buildConfigField "String", "ENV_TYPE", "\"1\""
        applicationId 'xxx'
        manifestPlaceholders = [
                app_name     : "开发",
        ]
    }
    //测试环境
    check {
        buildConfigField "String", "ENV_TYPE", "\"2\""
        applicationId 'xxx'
        manifestPlaceholders = [
                app_name     : "测试",
        ]
    }
    //生产环境
    product {
        buildConfigField "String", "ENV_TYPE", "\"3\""
        applicationId 'xxx'
        manifestPlaceholders = [
                app_name     : "xxx",
        ]
    }
}
(2)配置AndroidManifest.xml中的application label,对应上面的渠道app_name:
上面你配置了app_name 如果你不配置相应的xml是不会生效的!

android:label="${app_name}"
(3)配置项目下的build.gradle:
buildscript {
    ext.kotlin_version = '1.3.30'
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        maven { url 'https://jitpack.io'}
        google()
        jcenter()
    }
    dependencies {
        ...
        classpath 'com.meituan.android.walle:plugin:1.1.6'
    }
}

allprojects {
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        maven { url 'https://jitpack.io'}
        google()
        jcenter()
    }
}
(4)配置app下的build.gradle 添加:

         //先使用android studio 生成一个 app.jks签名文件

//解决错误:All flavors must now belong to a named flavor dimension.

    defaultConfig {
        ...
        flavorDimensions "versionCode"
    }

//配置签名:(signingConfigs一定要在buildTypes之前,不然找不到)

    signingConfigs {
        debug{
            keyAlias 'motian'
            keyPassword '123456'
            storeFile file('../walle.jks')
            storePassword '123456'
        }
        release {
            keyAlias 'motian'
            keyPassword '123456'
            storeFile file('../walle.jks')
            storePassword '123456'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        }
        debug {
            minifyEnabled false
            signingConfig signingConfigs.release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

//添加依赖:

    //添加相应渠道的aar
    apply plugin: 'walle'

    /*多渠道的库*/
    implementation 'com.meituan.android.walle:library:1.1.6'

//配置插件walle,打包后的文件位置和信息等:

    walle {
        // 指定渠道包的输出路径
        apkOutputFolder = new File("${project.buildDir}/outputs/channels");
        // 定制渠道包的APK的文件名称
        apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk';
        // 渠道配置文件
        channelFile = new File("${project.getProjectDir()}/channel")
    }

//在app下创建创建channel文件,添加:

    Qh360 #360
    Yyb #应用宝
    Wdj #豌豆荚
    Lenovo #联想
    Xiaomi #小米
    Huawei #华为
    Meizhu #魅族
(5)然后去打包,就可以获得对应的包
或者:在android studio 右侧 Gradle下的项目下的package assembleDevelopDebugChannels

就可以在 build/outputs/channels 下找到生成的渠道包

demo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值