2017年9月19日 星期二

[Android] 如何修改預設output 的APK 名稱

編譯專案後會產生output apk,預設名稱會是 "app-release.apk"
但在開發專案的時後常會需要根據 build type 不同有對應的名稱,例如 xxx-release.apk
當然可以每次build出apk後,再去修改名稱,當個勤勞的工程師
可是一天我們會build上好幾上次的apk,每次都要做更改,光想就覺得累
我們可以利用修改Gradle 幫我們把這個行為自動化

在這邊用比較複雜的名稱格式來當範例
將APK名稱格式修改成 myProject_dev_debug_1.3.6_131016_1047.apk.
專案名稱_Flavors_buildType_versionName_ddMMyy_HHmm
這些是我們會用到的資訊

  • flavor
  • buildType
  • version
  • date

app/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)
        }
    }
}
reference :
https://stackoverflow.com/questions/28249036/app-release-apk-how-to-change-this-default-generated-apk-name/30332234#30332234

沒有留言:

張貼留言