6
4

More than 5 years have passed since last update.

ProductFlavor、BuildType毎に出力されるAPKファイル名を変えたい(メモ)

Posted at

概要

assembleコマンドで出力したAPKファイルが、渡した先で古いものとごっちゃにされてしまうことがまれによくあるので、出力時点でファイル名を変更してバージョンが一目でわかるようにしています。

参考:

Android Studio2系

特定のProductFlavorの全てのBuildTypeを一括で出力したり、逆に全てのProductFlavorの特定のBuildTypeを一括で出力したりすることも多いため、まとめてbuild/outputs/apkに出力するようにしています。

build.gradle
android {
    /** 略 **/

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            if (output.outputFile?.name?.endsWith('.apk')) {
                variant.productFlavors.each { productFlavor ->
                    // 出力ファイル名は「BuildTypeProductFlavor_versionName_versionCode.apk」
                    output.outputFile = new File(output.outputFile.parent,
                            variant.buildType.getName().capitalize() + productFlavor.name.capitalize() + '_' + variant.versionName + '_' + variant.versionCode + '.apk')
                }
            }
        }
    }
}

Android Studio3系

output.outputFileが操作できないためAndroid Sutdio2系とは若干異なります。
そのままだとbuild/outputs/apk/productFlavor/buildTypeにそれぞれ出力されるため2階層上に出力する用に調整していますが、ちょっと気持ち悪さがあります…

build.gradle
android {
    /** 略 **/

    applicationVariants.all { variant ->
        variant.outputs.all { output ->
            if (outputFileName?.endsWith('.apk')) {
                variant.productFlavors.each { productFlavor ->
                    // 出力ファイル名は「BuildTypeProductFlavor_versionName_versionCode.apk」
                    outputFileName = '../../' + variant.buildType.getName().capitalize() + productFlavor.name.capitalize() + '_' + variant.versionName + '_' + variant.versionCode + '.apk'
                }
            }
        }
    }
}

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4