Skip to content

Instantly share code, notes, and snippets.

@tw-Frey
Forked from huuphuoc1396/build.gradle
Created August 11, 2023 14:43
Show Gist options
  • Save tw-Frey/0e5d28ec5734a898a2c7fe32d49dc364 to your computer and use it in GitHub Desktop.
Save tw-Frey/0e5d28ec5734a898a2c7fe32d49dc364 to your computer and use it in GitHub Desktop.
Config your output file name in Gradle Kotlin DSL
import com.android.build.gradle.api.ApplicationVariant
import com.android.build.gradle.api.BaseVariantOutput
import com.android.build.gradle.internal.api.BaseVariantOutputImpl
android {
//...
applicationVariants.all(ApplicationVariantAction())
}
class ApplicationVariantAction : Action<ApplicationVariant> {
override fun execute(variant: ApplicationVariant) {
val fileName = createFileName(variant)
variant.outputs.all(VariantOutputAction(fileName))
}
private fun createFileName(variant: ApplicationVariant): String {
return "YourAppName" +
"_${variant.name}" +
"_verCode${Android.versionCode}" +
"_${getDateTimeFormat()}.apk"
}
private fun getDateTimeFormat(): String {
val simpleDateFormat = SimpleDateFormat("yyMdHms", Locale.US)
return simpleDateFormat.format(Date())
}
class VariantOutputAction(
private val fileName: String
) : Action<BaseVariantOutput> {
override fun execute(output: BaseVariantOutput) {
if (output is BaseVariantOutputImpl) {
output.outputFileName = fileName
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment