Android 多版本多渠道打包
16lz
2021-01-23
美团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
更多相关文章
- Android 开发环境问题解决方案集
- Ubuntu12.04 安装ADB调试环境
- 整理android环境离线安装搭建方法——支持android 2.3.3和androi
- Mac OSX Android 开发环境 模拟器报错
- App应用之提交到各大市场渠道
- Cocos2dx 2.0.2版本Android环境出错:Cannot find module with tag
- (2) 搭建 Android 系统开发环境