完美处理 Android App 的 apk 输出路径与文件名

实现代码

复制代码
buildTypes {

        // ...
    
        
        applicationVariants.all {
            variant ->
                variant.outputs.all {
                    Calendar calendar = Calendar.getInstance(Locale.CHINA);
                    def buildDate = String.format(Locale.CHINA, "%04d%02d%02d", calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DAY_OF_MONTH))
                    def versionName = variant.versionName
                    def versionCode = variant.versionCode
                    //项目名-版本名-版本号-release/debug.apk
                    if (variant.buildType.name.equals('release')) {
                        variant.getPackageApplication().outputDirectory = new File("ApkOutputs/release")
                        outputFileName = "${rootProject.getName()}-v${versionName}-${versionCode}-${buildDate}-release.apk"
                    } else {
                        variant.getPackageApplication().outputDirectory = new File("ApkOutputs/debug")
                        outputFileName = "${rootProject.getName()}-v${versionName}-${versionCode}-${buildDate}-debug.apk"
                    }
                }
        }
    }

效果

相关推荐
徐同保几秒前
react+antd Input回车输入生成tag组件
前端·react.js·前端框架
YL有搞头7 分钟前
webpack的构建流程以及loader和plugin
前端·webpack·node.js
2503_9284115611 分钟前
11.20 vue项目搭建-单页面应用
前端·javascript·vue.js
BUG创建者12 分钟前
项目中使用script-ext-html-webpack-plugin
前端·webpack·html
No.Ada16 分钟前
头歌-基于 socket 的网络编程
linux·服务器·网络
百锦再16 分钟前
第21章 构建命令行工具
android·java·图像处理·python·计算机视觉·rust·django
极光代码工作室22 分钟前
基于SpringBoot的校园招聘信息管理系统的设计与实现
java·前端·spring
打小就很皮...38 分钟前
React VideoPlay 组件封装与使用指南
前端·react.js·video
Ace_317508877641 分钟前
微店平台关键字搜索接口深度解析:从 Token 动态生成到多维度数据挖掘
java·前端·javascript
都小事儿1 小时前
VSCODE:保存文件时删除行尾空格
linux·vscode