完美处理 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"
                    }
                }
        }
    }

效果

相关推荐
吃饺子不吃馅几秒前
前端画布类型编辑器项目,历史记录技术方案调研
前端·架构·github
小跌—4 分钟前
Linux:多路转接
linux·网络
csdn_aspnet7 分钟前
如何在 Mac、Ubuntu、CentOS、Windows 上安装 MySQL 客户端
linux·windows·mysql·macos·centos
铭哥的编程日记13 分钟前
【Linux网络】传输层协议UDP
linux·网络·udp
拜晨16 分钟前
使用motion实现小宇宙贴纸墙效果
前端·交互设计
拜晨26 分钟前
使用motion实现小宇宙节目广场的效果
前端·交互设计
x_lrong32 分钟前
Linux虚拟机配置jupyter环境并在宿主机访问
linux·运维·笔记·jupyter·虚拟机
羚羊角uou38 分钟前
【Linux网络】Socket编程TCP-实现Echo Server(上)
linux·运维·服务器
爱奥尼欧1 小时前
【Linux笔记】网络部分——数据链路层mac-arp
linux·网络·笔记
知花实央l1 小时前
【Web应用实战】 文件上传漏洞实战:Low/Medium/High三级绕过(一句话木马拿webshell全流程)
前端·学习·网络安全·安全架构