在Android Studio中重命名apk

时间:2016-10-26 06:59:45

标签: android android-studio gradle apk android-productflavors

前段时间我为gradle编写了此脚本代码段,以便更改Android Studio生成的apk的名称。它使用以下数据重命名apk:

  • 味道
  • 构建类型
  • 版本
  • 日期

在build.gradle中:

android {

    ...

    buildTypes {
        release {
            minifyEnabled true
            ...
        }
        debug {
            minifyEnabled false
        }
    }

    productFlavors {
        prod {
            applicationId "com.feraguiba.myproject"
            versionCode 3
            versionName "1.2.0"
        }
        dev {
            applicationId "com.feraguiba.myproject.dev"
            versionCode 15
            versionName "1.3.6"
        }
    }

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "myProject"
            def SEP = "_"
            def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('ddMMyy_HHmm')

            def newApkName = project + SEP + flavor + SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }
}

如果你今天(16-10-2016)在10:47编译,你会得到以下文件名,具体取决于你选择的风味和构建类型:

  • dev debug :myProject_ dev_debug_1.3.6 _261016_1047.apk
  • 开发:myProject_ dev_release_1.3.6 _261016_1047.apk
  • prod debug :myProject_ prod_debug_1.2.0 _261016_1047.apk
  • prod release :myProject_ prod_release_1.2.0 _261016_1047.apk

注意:未对齐版本的apk名称仍然是默认名称。

虽然重命名工作正常并且使用正确的名称生成apk,但问题是当我单击"运行项目"时,Android Studio有时无法在设备中安装apk。它抱怨以下消息:

  

磁盘上不存在APK文件C:\ Users \ xxx \ AndroidStudioProjects \ xxx \ build \ outputs \ apk \ myProject_dev_debug_1.3.6_191016_1047.apk。

     

安装APK时出错

为什么AS搜索" myProject_dev_debug_1.3.6_ 19 1016_1047.apk"当生成的是" myProject_dev_debug_1.3.6_ 26 1016_1047.apk" ???我错过了什么,我不知道是什么。

做一个"清洁项目"或者一个"重建项目"没有解决问题。我找到的唯一解决方法是修改脚本以稍微更改apk的名称。

注意:我正在使用 Android Studio 2.1.3 with gradle 2.1.3

1 个答案:

答案 0 :(得分:0)

Gradle-fury有一些钩子来命名工件+变体+调试/发布+版本。可能值得借用或直接使用它。

https://github.com/gradle-fury/gradle-fury/blob/master/gradle/maven-support.gradle

免责声明,我正在努力