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

效果

相关推荐
赏金术士5 分钟前
Kotlin 协程与挂起函数(Coroutines & suspend)入门到实战
android·开发语言·kotlin
贫民窟的勇敢爷们19 分钟前
React跨平台能力,打破前端开发的平台边界
前端·react.js·前端框架
magic_now34 分钟前
Linux 内核启动流程详解(基于 5.15.119 源码)
linux·运维·服务器
草木深雨纷纷1 小时前
mt管理器手机版下载2026最新版更新下载分享
linux·运维·网络·智能手机
扛枪的书生1 小时前
ELK 学习总结
linux
lifejump1 小时前
Dede(织梦)CMS渗透测试(all)
前端·网络·安全·web安全
Irene19911 小时前
大数据开发面试常问的 Linux 命令 总结
大数据·linux
扬帆破浪1 小时前
sidecar崩溃后前端怎么续命 重启策略与状态保留
前端·人工智能·架构·开源·知识图谱
辰尘_星启1 小时前
【Linux】Python Socket编程指南
linux·python·socket·系统·通信
光影少年1 小时前
前端算法题
前端·javascript·算法