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

效果

相关推荐
半个烧饼不加肉6 分钟前
JS 底层探究-- 事件循环
开发语言·前端·javascript
皆圥忈19 分钟前
文件描述符与重定向
linux
goDeep19 分钟前
useMemo 和 useCallback 的区别,我终于搞懂了
前端
小亮学前端20 分钟前
在1Panel中部署Nuxt项目
前端·vue.js
产品研究员23 分钟前
AI生成可用的React交互代码实测:Lovable vs Stitch vs Paico
前端·react.js·aigc
labixiong24 分钟前
Prompt 工程:当一段文字学会了思考、行动与统治
前端·ai编程
实心儿儿25 分钟前
Linux —— 线程池(2)
linux
biubiubiu_LYQ27 分钟前
入门开发者必学篇之JS事件循环:为什么你的代码输出总翻车?
前端·javascript
AI帮小忙27 分钟前
主机安全排查
linux·服务器·安全
程序员黑豆1 小时前
AI全栈开发之Java:怎么安装JDK
前端·ai编程·全栈