如何在 Android Studio 中生成具有自定义名称的输出 APK 文件?

pra*_*d07 6 android android-studio build.gradle android-gradle-plugin

我想使用自定义名称生成输出 apk 文件。例如。默认情况下,android studio 生成“app-debug.apk”文件。但我希望它是 - "MyAppName_myCurrentProdFlavour_vMyVersionName.apk" 如何使用模块的build.gradle文件执行此操作

Khe*_*raj 6

最简单的方法

app_debug.apk之前

com.pcvark.jobtest-v1(1.0)-debug.apk 之后

android {
    ..
    defaultConfig {
        ...
        setProperty("archivesBaseName", applicationId + "-v" + versionCode + "(" + versionName + ")")
    }
Run Code Online (Sandbox Code Playgroud)

提示您还可以设置versionNameSuffix 不同buildType和变体(如果有)。这将使不同命名的apk两个debugrelease

buildTypes {
        debug {
          versionNameSuffix "-T"
        }
        release {
          versionNameSuffix "-R"
        }
    }
Run Code Online (Sandbox Code Playgroud)

进一步阅读

/sf/answers/1446219211/

https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html


pra*_*d07 4

1. 更改应用程序包名称(.aab 文件):

在应用程序模块的 build.gradle 中:

def dateFormat = new Date().format('ddMMMyy_HHmm')
defaultConfig {
        applicationId "com.xyz"
        minSdk 21
        targetSdk 31
        versionCode 3
        versionName "1.0.2"

        setProperty("archivesBaseName", "yourappname" + "_v" + versionName + "(" + versionCode + ")_"+dateFormat)

    }
Run Code Online (Sandbox Code Playgroud)

例如:如果您的应用程序名称是 XYZ,则捆绑包名称将生成为:XYZ_v1.0.2(3)_28Jan22_1152-prod-release

其中, yourappnameXYZversionName1.0.2versionCode3dateFormat28Jan22_1152,并且 app FlavorTypebuildTypeprod-release

2.用于更改apk文件名(.apk文件)

在应用程序模块的 build.gradle 中:

android {

applicationVariants.all { variant ->
            variant.outputs.each { output ->
                def name = "XYZ"
                def SEP = "_"
                def flavor = variant.productFlavors[0].name
                def buildType = variant.buildType.name
                def versionName = defaultConfig.versionName
                def versionCode = defaultConfig.versionCode
                def newApkName = name + SEP + "v" + versionName + SEP + flavor + SEP + buildType + SEP + "vc" + versionCode + SEP + dateFormat + ".apk"
                output.outputFileName = newApkName
            }
        }    
}
Run Code Online (Sandbox Code Playgroud)

例如,如果您的应用程序名称是 XYZ,那么这将生成具有以下自定义名称的 APK 文件: XYZ_v1.0.2_prod_release_vc3_28Jan22_1152


注意:如果您没有productFlavours,您可以根据您的要求更改apk名称的dateFormat,然后从上面给出的代码中删除所有相关引用。