You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle构建APK:如何自动将buildNumber、versionNumber加入文件名

实现APK文件名自动包含versionNumber和buildNumber的方案

当然可以做到!你只需要在模块级的build.gradle(注意是app目录下的那个,不是项目根目录的build.gradle)里做一点配置,就能让Gradle自动把versionNumber(对应Gradle里的versionName)和buildNumber(对应versionCode)追加到APK文件名中。下面是具体步骤:

1. 先确认版本信息已定义

首先确保你已经在defaultConfig块里配置了versionCode和versionName,这两个就是你说的buildNumber和versionNumber:

android {
    defaultConfig {
        versionCode 123  // 这里填你的buildNumber
        versionName "2.4.1"  // 这里填你的versionNumber
        // 其他默认配置(比如applicationId等)...
    }
    // 其他Android配置...
}

2. 配置变体输出文件名

在同一个android块中,添加applicationVariants的处理逻辑,修改APK的输出文件名:

适配Android Gradle Plugin 7.0+(推荐写法)

如果你的AGP版本是7.0及以上,直接用outputFileName来设置更简洁:

android {
    // 上面的defaultConfig和其他配置...

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // 自定义文件名格式,可根据需求调整
            output.outputFileName = "app-${variant.name}-v${variant.versionName}-build${variant.versionCode}.apk"
        }
    }
}

执行./gradlew assembleProductionRelease后,你会得到类似app-productionRelease-v2.4.1-build123.apk的文件名。

适配旧版AGP(7.0以下)

如果你的AGP版本较低,需要用outputFile来修改:

android {
    // 上面的defaultConfig和其他配置...

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            if (output.outputFile != null && output.outputFile.name.endsWith('.apk')) {
                def fileName = "app-${variant.name}-v${variant.versionName}-build${variant.versionCode}.apk"
                output.outputFile = new File(output.outputFile.parent, fileName)
            }
        }
    }
}

3. 自定义文件名格式

如果你想调整文件名的格式,比如简化变体名称、修改分隔符,直接修改fileName的字符串即可。举几个例子:

  • 简化变体名称:"app-production-release-v${variant.versionName}-${variant.versionCode}.apk"
  • 更灵活的变体拼接:"app-${variant.flavorName}-${variant.buildType.name}-v${variant.versionName}-build${variant.versionCode}.apk"
  • 去掉“build”前缀:"app-${variant.name}-v${variant.versionName}-${variant.versionCode}.apk"

4. 验证效果

配置完成后,重新执行你的构建命令:

./gradlew assembleProductionRelease

构建完成后,在app/build/outputs/apk/production/release/目录下就能看到带有版本号和构建号的APK文件了。

内容的提问来源于stack exchange,提问作者Ruslan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:29:32