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

效果

相关推荐
2023自学中9 分钟前
imx6ull开发板 移植 ffmpeg 4.2.11 + x264 视频编码库
linux·ffmpeg·音视频·嵌入式·开发板
半个落月19 分钟前
前端工程化第一步:BEM 国际命名规范与 CSS Reset 实战
前端·css
kyriewen26 分钟前
开源|Image Harvest v1.0.5:AI 智能标签 + Eagle 导出,设计师和开发者的图片工作流神器
前端·javascript·ai编程
wuhen_n32 分钟前
LangChain Memory 详解:实现 AI 连续对话不丢失上下文
前端·langchain·ai编程
阿洛学长1 小时前
VMware安装虚拟机教程(超详细)
java·linux·开发语言
wuhen_n1 小时前
LangChain Function Call 实战:让 AI 调用自定义工具
前端·langchain·ai编程
YOU OU1 小时前
Linux基本使用和程序部署
linux·运维·服务器
DyLatte1 小时前
很多人把坚持,误以为成长
前端·后端·程序员
fred_kang1 小时前
如何找到 Linux 服务器上某个 URL 路径对应的实际部署位置
linux·运维·服务器
yingyima1 小时前
凌晨3点的警报声:定时任务监控与告警的最佳实践
前端