利用gradle修改打包或者运行时App工程生成的app文件名

本文介绍了两种情况下的Android应用打包时修改APK文件名的方法。第一种,通过build.gradle文件配置versionName时,可在build.gradle中添加特定代码实现。第二种,若versionName在AndroidManifest.xml中设置,则需在该文件最外层进行相应操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.第一种情况,你的android工程versionname是通过build.gradle文件配置的话,直接在build.gradle文件的android括号内添加如下代码

//修改生成的apk名字
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def oldFile = output.outputFile
            def newName = '';
            if (variant.buildType.name.equals('release')) {
//                println(variant.productFlavors[0].name)
                def releaseApkName = 'app名称' + variant.getVersionName() + '-' + variant.productFlavors[0].name +getDate()+ '-signed.apk'
                output.outputFile = new File(oldFile.parent, releaseApkName)
            }
            if (variant.buildType.name.equals('beta')) {
                newName = oldFile.name.replace(".apk", "-v" + getVersionNameFromManifest() + "-build" + getDate() + ".apk")
                output.outputFile = new File(oldFile.parent, newName)
            }
            if (variant.buildType.name.equals('debug')) {

            }
        }
    }

    productFlavors {  //在这里添加你所有需要打包的渠道
        myApp {}

    }
而且在build最外层,所有花括号外添加获取当前打包的事件字符串

//获取时间戳
def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmm')
    return formattedDate
}

第二种情况,你的android工程versionname是通过AndroidManifest.xml文件来来控制的的话,在最外层添加

//从androidManifest.xml中获取版本号
def getVersionNameFromManifest(){
    def manifestParser = new com.android.builder.core.DefaultManifestParser()
    return manifestParser.getVersionName(android.sourceSets.main.manifest.srcFile)
}
//获取时间戳
def getDate() {
    def date = new Date()
    def formattedDate = date.format('yyyyMMddHHmm')
    return formattedDate
}
而build.gradle文件的android花括号内添加如下代码

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def oldFile = output.outputFile
            def newName = '';
            if (variant.buildType.name.equals('release')) {
//                println(variant.productFlavors[0].name)
                def releaseApkName = 'app名称' + variant.getVersionName() + '-' + variant.productFlavors[0].name +getDate()+ '-signed.apk'
                output.outputFile = new File(oldFile.parent, releaseApkName)
            }
            if (variant.buildType.name.equals('beta')) {
                newName = oldFile.name.replace(".apk", "-v" + getVersionNameFromManifest() + "-build" + getDate() + ".apk")
                output.outputFile = new File(oldFile.parent, newName)
            }
            if (variant.buildType.name.equals('debug')) {

            }
        }
    }

    productFlavors {  //在这里添加你所有需要打包的渠道
        myApp {}

    }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值