“app-release.apk”如何更改这个默认生成的apk名称,允许之后安装?

Posted

技术标签:

【中文标题】“app-release.apk”如何更改这个默认生成的apk名称,允许之后安装?【英文标题】:“app-release.apk” how to change this default generated apk name that allows to install after? 【发布时间】:2020-01-03 10:57:56 【问题描述】:

这个问题的答案都很糟糕,因为你不能通过生成的 apk 安装应用程序 " app-release.apk" how to change this default generated apk name

例如

buildTypes 
    release 
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        signingConfig getSigningConfig()
        applicationVariants.all  variant ->
            variant.outputs.each  output ->
                def date = new Date();
                def formattedDate = date.format('yyyyMMddHHmmss')
                output.outputFile = new File(output.outputFile.parent,
                        output.outputFile.name.replace("-release", "-" + formattedDate)
//for Debug use output.outputFile = new File(output.outputFile.parent,
//                             output.outputFile.name.replace("-debug", "-" + formattedDate)
                )
            
        
    

【问题讨论】:

请让您的问题更清楚。您想要当前或以前安装的应用程序或 apk 两者吗? 【参考方案1】:

使用下面的代码并将其放在android 闭包之外:

android.applicationVariants.all  variant ->
    variant.outputs.each  output ->
        // Redirect your apks to new defined location to outputDirPath
        def outputDirPath = new File("$project.rootDir.absolutePath/apks/$variant.flavorName/$variant.buildType.name")
        variant.packageApplicationProvider.get().outputDirectory = outputDirPath

        def apkFileName = "$rootProject.name_$android.defaultConfig.versionName.apk"
        output.outputFileName = apkFileName // directly assign the new name back to outputFileName
    

您的最终 apk 名称将类似于 app_1.0.0.apk,如果您想让名称更花哨,您可以根据您的要求修改以下行。

def apkFileName = "$rootProject.name_$android.defaultConfig.versionName.apk"

【讨论】:

很好的解决方案,不幸的是,由于缺少app\build\outputs\debug\app-debug.apk 中的app-debug.apk 文件,安装失败。你知道如何解决这个问题吗? app-release.apk 文件会有相同的行为。非常感谢!

以上是关于“app-release.apk”如何更改这个默认生成的apk名称,允许之后安装?的主要内容,如果未能解决你的问题,请参考以下文章

app-release.apk 是 zipaligned apk 吗?

react-native android中的gradlew assembleRelease命令未生成app-release.apk

Android studio 自定义打包apk名

Android studio 自己定义打包APK名称

Android studio 自定义打包APK名称

AndroidStudio打包生成APK 指定文件名