GradleでビルドしたAPKファイルの名前を変更する方法です。
…それだけだと今更の話なのですが、
Android Studio 1.0 RC1もリリースされたようだし、Gradle Pluginも最新化して…と試してみるとGradle Plugin 0.14.3の変更でいくつかの古いプロパティが使えなくなっていました。
自分の場合はAPKファイルのリネーム部分でCould not find propety 'packageApplication'
等々のエラーが起き、Syncすらできなかったため、改めて新しいAPIでAPKファイル名の変更を試しました。
普通にビルドすると
app-[productFlavor]-[buildType].apk
のような名前になると思いますが、これを
[applicationId]-[productFlavor]-[buildType]-[versionCode]-[versionName]-[gitCommitHash].apk
のようにします。
取りあえず以下のようにすればできました。ごちゃごちゃして汚いですが…
(アプリはapp
というサブプロジェクトになっている前提です)
Android Studio 1.0 RC1 + Gradle Plugin 0.14.4 + Gradle 2.1では警告等出ていません。
build.gradle
android {
:
project.ext.gitHash = "git rev-parse --short HEAD".execute().text.trim()
applicationVariants.all { variant ->
def output = variant.outputs.get(0)
File apk = output.outputFile
String newName = output.outputFile.name
.replace(".apk", "-${variant.mergedFlavor.versionCode}-${variant.mergedFlavor.versionName}-${project.ext.gitHash}.apk")
.replace("app-", "${variant.mergedFlavor.applicationId}-")
output.outputFile = new File(apk.parentFile, newName)
}
}