Walle Gradle插件配置详解:从基础到高级

Walle Gradle插件配置详解:从基础到高级

【免费下载链接】walle Meituan-Dianping/walle: Walle 是美团点评开源的一款 Android 打包工具,提供了一站式的 App 发布解决方案,包括但不限于多渠道打包、自动签名、自动上传到分发平台等功能。 【免费下载链接】walle 项目地址: https://gitcode.com/gh_mirrors/wa/walle

Walle是美团点评开源的一款Android多渠道打包工具,通过APK Signature Scheme v2签名机制实现高效的渠道包生成。本文将详细介绍Walle Gradle插件的配置方法,从基础配置到高级用法,帮助开发者快速掌握这一强大的打包工具。🚀

基础配置快速上手

第一步:添加插件依赖

在项目的根目录build.gradle文件中添加Walle Gradle插件依赖:

buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.1.7'
    }
}

第二步:应用插件

在当前App模块的build.gradle文件中应用插件:

apply plugin: 'walle'

第三步:配置插件参数

在同一个build.gradle文件中配置walle闭包:

walle {
    apkOutputFolder = new File("${project.buildDir}/outputs/channels")
    apkFileNameFormat = '${appName}-${packageName}-${channel}-${buildType}-v${versionName}-${versionCode}-${buildTime}.apk'
    channelFile = new File("${project.getProjectDir()}/channel")
}

核心配置参数详解

输出路径配置

apkOutputFolder参数用于指定渠道包的输出路径:

apkOutputFolder = new File("${project.buildDir}/outputs/channels")

文件命名模板

apkFileNameFormat支持多种变量,实现灵活的命名策略:

  • projectName - 项目名称
  • appName - App模块名称
  • packageName - 应用包名
  • buildType - 构建类型
  • channel - 渠道名称
  • versionName - 版本名称
  • versionCode - 版本代码
  • buildTime - 构建时间
  • fileSHA1 - 文件SHA1哈希值
  • flavorName - 产品风味名称

渠道配置文件

channelFile指向包含渠道列表的文本文件,格式如下:

meituan
dianping
xiaomi
huawei
# 注释行以#开头
oppo
vivo

高级配置技巧

使用配置文件替代渠道文件

对于需要写入额外信息的场景,可以使用configFile替代channelFile

walle {
    configFile = new File("${project.getProjectDir()}/config.json")
}

配置文件采用JSON格式,支持为每个渠道配置额外的信息:

{
  "defaultExtraInfo": {
    "buildtime": "20161212",
    "hash": "xxxxxxx"
  },
  "channelInfoList": [
    {
      "channel": "meituan",
      "alias": "美团"
    },
    {
      "channel": "dianping",
      "alias": "点评",
      "extraInfo": {
        "source": "官网"
      }
    }
  ]
}

根据应用ID动态配置

afterEvaluate中根据不同的applicationId配置不同的渠道文件:

afterEvaluate {
    project.android.applicationVariants.all { BaseVariant variant ->
        variant.assemble.doFirst {
            if (variant.applicationId.endsWith(".debug")) {
                project.walle.channelFile = new File("${project.getProjectDir()}/channel_debug")
        }
    }
}

实战操作指南

生成渠道包命令

使用Gradle命令生成渠道包:

./gradlew clean assembleReleaseChannels

临时生成指定渠道包

对于临时需求,可以通过命令行参数生成特定渠道包:

# 生成单个渠道包
./gradlew clean assembleReleaseChannels -PchannelList=meituan

# 生成多个渠道包
./gradlew clean assembleReleaseChannels -PchannelList=meituan,dianping

# 生成渠道包并写入额外信息
./gradlew clean assembleReleaseChannels -PchannelList=meituan -PextraInfo=buildtime:20161212,hash:xxxxxxx

常见问题解决

配置优先级说明

  • 命令行参数优先级最高
  • configFile优先级高于channelFile
  • 扩展配置优先级最低

注意事项

  1. 确保APK已启用V2签名方案
  2. 使用apksigner重新签名会导致渠道信息丢失
  3. extraInfo中不要使用channel作为键名

总结

Walle Gradle插件提供了强大而灵活的多渠道打包解决方案。通过合理的配置,开发者可以显著提高打包效率,满足各种复杂的发布需求。从基础配置到高级用法,本文涵盖了Walle插件的完整配置流程,帮助开发者快速上手并应用于实际项目中。💪

通过掌握这些配置技巧,你的Android应用打包流程将变得更加高效和专业!

【免费下载链接】walle Meituan-Dianping/walle: Walle 是美团点评开源的一款 Android 打包工具,提供了一站式的 App 发布解决方案,包括但不限于多渠道打包、自动签名、自动上传到分发平台等功能。 【免费下载链接】walle 项目地址: https://gitcode.com/gh_mirrors/wa/walle

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值