Skip to content

Commit

Permalink
update variant.outputs
Browse files Browse the repository at this point in the history
  • Loading branch information
UjuiUjuMandan committed Jan 9, 2025
1 parent 027d7d6 commit 3cace66
Showing 1 changed file with 14 additions and 36 deletions.
50 changes: 14 additions & 36 deletions V2rayNG/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
Expand Down Expand Up @@ -77,44 +78,21 @@ android {
jvmTarget = JavaVersion.VERSION_17.toString()
}

applicationVariants.all {
val variant = this
val isFdroid = variant.productFlavors.any { it.name == "fdroid" }
if (isFdroid) {
val versionCodes =
mapOf("armeabi-v7a" to 2, "arm64-v8a" to 1, "x86" to 4, "x86_64" to 3, "universal" to 0
)

variant.outputs
.map { it as com.android.build.gradle.internal.api.ApkVariantOutputImpl }
.forEach { output ->
val abi = output.getFilter("ABI") ?: "universal"
output.outputFileName = "v2rayNG_${variant.versionName}-fdroid_${abi}.apk"
if (versionCodes.containsKey(abi)) {
output.versionCodeOverride =
(100 * variant.versionCode + versionCodes[abi]!!).plus(5000000)
} else {
return@forEach
}
}
} else {
val versionCodes =
mapOf("armeabi-v7a" to 4, "arm64-v8a" to 4, "x86" to 4, "x86_64" to 4, "universal" to 4)

androidComponents {
onVariants { variant ->
val abiCodes = mapOf(
"universal" to 0, "arm64-v8a" to 1, "armeabi-v7a" to 2, "x86_64" to 3, "x86" to 4
)
val isAAB = variant.flavorName.toString() == "playstore"
variant.outputs
.map { it as com.android.build.gradle.internal.api.ApkVariantOutputImpl }
.forEach { output ->
val abi = if (output.getFilter("ABI") != null)
output.getFilter("ABI")
else
"universal"

output.outputFileName = "v2rayNG_${variant.versionName}_${abi}.apk"
if (versionCodes.containsKey(abi)) {
output.versionCodeOverride =
(1000000 * versionCodes[abi]!!).plus(variant.versionCode)
} else {
return@forEach
val abi = output.filters.find { it.filterType == ABI }?.identifier?: "universal"
output.versionCode.set(
(output.versionCode.get() * 100 + abiCodes[abi]!! + 5000000).takeUnless { isAAB }
?: (1000000 * 4 + output.versionCode.get())
)
if (output is com.android.build.api.variant.impl.VariantOutputImpl) {
output.outputFileName = "v2rayNG_${output.versionName.get()}_${abi}.apk"
}
}
}
Expand Down

0 comments on commit 3cace66

Please sign in to comment.