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

效果

相关推荐
晴天的雨.9925 分钟前
【Linux】基础开发工具---软件包管理器
linux·运维·服务器
deli00710 分钟前
连接池到底配多大?QPS 和 RT 算一遍,再跑 1 万次请求实测超时率
前端
萌新杰少18 分钟前
Kuikly股票查看软件开发体验——SaiRen
android·kotlin·客户端
vilya24 分钟前
把 Python 塞进 APK:Chaquopy 打包实践
android·python
用户928172673901626 分钟前
Android Compose版本的AI组件库来了。
android·kotlin
知昂七昂28 分钟前
00-02:AOSP 源码阅读环境与检索方法论源码剖析(Android 16 / aosp-main)
android
风花一世月30 分钟前
🏮 我把三坊七巷做成了能飞的 3D 地图(901 个真实建筑轮廓、20 处景点,在线直接玩)
前端
知昂七昂32 分钟前
00-01:AOSP 源码仓库结构与 repo 工作流源码剖析(Android 16 / aosp-main)
android·google
特立独行的猫A33 分钟前
用仓颉语言写一个串口调试助手:cj-tauri 实战
前端
小凯在掘金33 分钟前
Shadow DOM 和 Virtual DOM ?别再傻傻分不清
前端·html