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

效果

相关推荐
今天也想躺ping24 分钟前
linux系统移植pjsua库实现sip通话功能
linux·sip·交叉编译
2501_916008891 小时前
苹果上架工具怎么选 不用 Mac 上架 App Store 的几种方案
android·macos·ios·小程序·uni-app·iphone·webview
腻害兔1 小时前
【若依项目-产品经理视角】深度拆解 RuoYi-Vue-Pro 框架层:15 个 Starter 到底在干什么?
前端·vue.js·产品经理·ai编程
hkj88081 小时前
Linux 总线-设备-驱动(Bus-Device-Driver)完整协作原理
linux·运维·microsoft
早点睡啊Y1 小时前
深入学 LangChain 官方文档(一):总览、安装与快速开始
linux·服务器·langchain
jijihusong0062 小时前
KMP全栈开发教程:从Android到AI Agent
android·人工智能
国产化创客3 小时前
Kindle完整越狱改造:从闲置泡面盖到Linux开发与智能家居终端
linux·运维·物联网·嵌入式·智能家居·智能硬件
程序员黑豆3 小时前
从零开始:编写第一个鸿蒙(HarmonyOS)程序
前端·harmonyos
qetfw3 小时前
CentOS 7 搭建 MariaDB 数据库服务
linux·数据库·centos·mariadb