gpt4 book ai didi

android - 如何使用产品 flavor 和 APK 拆分从 Gradle 重命名和生成所有 APK 和 Bundle

转载 作者:行者123 更新时间:2023-12-03 20:40:06 28 4
gpt4 key购买 nike

正如我尝试过这两种方法(一次使用一个)重命名 APK
选项 - 一个

// To Change the APK and Bundle Name
archivesBaseName = "${name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}"
选项 - 两个
(为此也尝试将 - variant.outputs.all 更改为 variant.outputs.each )
android.applicationVariants.all { variant ->
variant.outputs.all { output ->
output.outputFileName = "${variant.buildType.name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}.apk"
}
}

当我使用选项 一个 ,

Issue - it generates all splits but it overrides the flavor config with thelast flavor written in Gradle.


另外,尝试将选项 一个 defaultConfig 中只有一次但正如 productFlavors 之后写的那样,它返回 null versionCode 中的值和 versionName .
productFlavors {
aFlavor {
applicationId "com.a"

versionCode 5
versionName "1.0.5"

signingConfig signingConfigs.signingA

// To Change the APK and Bundle Name
archivesBaseName = "${name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}"
}
bFlavor {
applicationId "com.b"

versionCode 5
versionName "1.0.5"

signingConfig signingConfigs.signingB

// To Change the APK and Bundle Name
archivesBaseName = "${name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}"
}
cFlavor {
applicationId "com.c"

versionCode 3
versionName "1.0.3"

signingConfig signingConfigs.signingC

// To Change the APK and Bundle Name
archivesBaseName = "${name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}"
}
}

当我使用选项 两个 ,

Issue - it generates the correct name but generates a single APK file.

splits {
abi {
enable true
reset()
include 'arm64-v8a', 'x86', 'x86_64'
universalApk false
}
}

android.applicationVariants.all { variant ->
variant.outputs.all { output ->
output.outputFileName = "${variant.buildType.name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}.apk"
}
}

Issue for bundle - not able to rename the bundle using option Two.

最佳答案

根据 This 回答,你可以用 Option - Two 稍作改动如下所述仅适用于 APK ,而不是 Bundle / AAB files

splits {
abi {
enable true
reset()
include 'arm64-v8a', 'x86', 'x86_64'
universalApk false
}
}

android.applicationVariants.all { variant ->
variant.outputs.all { output ->
// New one or Updated one
output.outputFileName = "${variant.getFlavorName()}-${variant.buildType.name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}-${output.getFilter(com.android.build.OutputFile.ABI)}.apk"
// Old one
// output.outputFileName = "${variant.buildType.name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}.apk"
}
}
此外,从每个 Flavor 的 block 中删除该行
// To Change the APK and Bundle Name
archivesBaseName = "${name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}"

通过这个,你得到这样的输出文件名
调味料
  • 发布
  • aFlavor-release-v5_1.0.5-16Jan2020_21-26-arm64-v8a.apk aFlavor-release-v5_1.0.5-16Jan2020_21-26-x86_64.apk aFlavor-release-v5_1.0.5-16Jan2020_21-26-x86.apk
  • 调试
  • aFlavor-debug-v5_1.0.5-16Jan2020_21-26-arm64-v8a.apk aFlavor-debug-v5_1.0.5-16Jan2020_21-26-x86_64.apk aFlavor-debug-v5_1.0.5-16Jan2020_21-26-x86.apk对于 bFlavor
    与上面类似的名称只是更改前缀 aFlavor bFlavor 喜欢 bFlavor-release-v5_1.0.5-16Jan2020_21-26-arm64-v8a.apk对于 cFlavor
    与上面类似的名称只是更改前缀 aFlavor cFlavor
    和, versionCode versionName 作为尊重 cFlavor-release-v3_1.0.3-16Jan2020_21-26-arm64-v8a.apk

    关于android - 如何使用产品 flavor 和 APK 拆分从 Gradle 重命名和生成所有 APK 和 Bundle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59650844/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com