如何从 Android gradle 重命名具有多种产品风格的应用程序包名称?

2024-07-04

正如我能够使用这种方式重命名APK https://stackoverflow.com/a/59774018/1684864但无法了解如何重命名具有多种风格的 App Bundle。

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

这是我的应用程序风格和拆分 APK 代码

productFlavors {
    aFlavor {
        applicationId "com.a"

        
        versionCode 5
        versionName "1.0.5"

        signingConfig signingConfigs.signingA
    }
    bFlavor {
        applicationId "com.b"

        versionCode 5
        versionName "1.0.5"

        signingConfig signingConfigs.signingB
    }
    cFlavor {
        applicationId "com.c"

        versionCode 3
        versionName "1.0.3"

        signingConfig signingConfigs.signingC
    }
}

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

尝试这个方法:

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

    tasks.named("sign${variant.name.capitalize()}Bundle", com.android.build.gradle.internal.tasks.FinalizeBundleTask) {
        File file = finalBundleFile.asFile.get()
        File finalFile = new File(file.parentFile, "${variant.getFlavorName()}-${variant.buildType.name}-v${versionCode}_${versionName}-${new Date().format('ddMMMyyyy_HH-mm')}.aab")
        finalBundleFile.set(finalFile)
    }
}

它使用内部 gradle 任务FinalizeBundleTask它具有最终捆绑文件名的 getter 和 setter。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Android gradle 重命名具有多种产品风格的应用程序包名称? 的相关文章

  • 是否可以制作固定的评级栏?

    我正在从网络上获取评级 并希望通过评级栏显示评级 但我的问题是 当我滑动评级栏时 评级栏的评级会发生变化 我希望评级是固定的 并且不会因用户的触摸而改变 有人可以限制对评级栏的控制吗 我怎样才能做到这一点 Use android isInd
  • 在 Android studio 中看不到“font”资源类型

    我正在研究新的 Android O 功能 其中一项新功能是现在应用程序可以直接将字体添加到res文件夹 按照安卓文档 https developer android com preview features working with fon
  • New Relic Android 代理在 gradle 时出现错误

    我有一个使用 gradle 构建系统的项目 我愿意向其中添加 New Relic 监控 该项目 包括 New Relic 在 Linux Fedora 20 上运行良好 但无法在我的 Mac 开发系统上构建 并给出错误说明Agent JAR
  • React Native Android 本地镜像

    我有这个
  • 有没有办法让每个人都可以访问 firestore 数据库,但只能通过应用程序?

    我正在使用 Firestore 创建 Android 应用程序 我的应用程序不需要身份验证 是否有任何安全规则允许每个人读取和写入 firestore 但只能通过我的应用程序 我试图找到一些规则 但每个规则都基于身份验证 感谢您的帮助 最接
  • RecyclerView 仅显示 Firebase 中的一项

    我知道关于这个问题的疑问很少 但他们都没有解决我的问题 特别是我的代码是用 Kotlin 编写的 并且是新的Fragments 不要急于说我的问题是重复的 我的问题正是标题所说的 我的RecyclerView仅填充了来自的一项 子项 Fir
  • 应用内结算:库存不正确;让用户再次购买

    编辑 仍在寻找我原来问题的答案 为什么 Android 不会看到该商品之前已购买过 而是让用户再次付款 设置 SharedPreferences 是一个不错的主意 但是如果用户卸载了怎么办 他们将不得不再次购买 我不希望用户这样 谢谢 我试
  • Android Studio 0.2.7 使用 Gradle 构建异常

    我正在从 Eclipse 迁移到 Android Studio 尽管由于 Android Studio 仍处于 预览 模式 但我正在缓慢且增量地迁移 自从更新到最新版本的 Android Studio 0 2 7 以来 我在默认构建过程中遇
  • 如何用多个手指在画布上绘图

    我正在使用安卓Canvas创建绘图应用程序的类 这是我第一次尝试使用 Canvas 类 到目前为止 我使用的代码工作正常 绘图工作正常 但我在这段代码中意识到 它允许用户仅用一根手指进行绘画 我的意思是说 如果用户使用多于一根手指在画布上绘
  • 相对于当前日期对 Java 集合进行排序

    我想相对于当前日期对日期列表进行排序 例如列表中有下一项 10 01 2018 10 20 2018 10 14 2018 10 02 2018 当前日期是10 08 2018 结果应该是按下一个顺序升序排列的数组 10 14 2018 1
  • 应用已被 Google Play 删除,因为旧版本不符合新的后台位置政策

    我调整了位置数据的权限和使用 并将其发布在新版本 v10004 中 不幸的是 我的应用程序仍然被删除 因为以前的版本不符合新的后台位置规定 如我从 Google 收到的邮件中所述 受影响的 APK App Bundle v10003 我找不
  • Google 登录使用新的 GoogleSignInOptions 获取访问令牌

    我的 Android 应用程序当前使用 GoogleAuthUtil 来登录用户并获取access token它被传递到后端 下面的代码片段显示创建 GoogleApiClient 并使用 GoogleAuthUtil 获取令牌 mGoog
  • 读取 NFC 标签时出现奇怪的字符

    我正在尝试使用 Android 读取 NFC 标签 我是一名养蜂人 这是为了在我接近蜂巢时识别它们 我已经在这里搜索过 但阅读标签时仍然遇到问题 我想阅读文本 但是当它阅读时 在所需文本之前有一个类似正方形的字符和显示为 十 的字符 这是我
  • Androidx 模块,android:attr/ttcIndex 和 android:attr/fontVariationSettings 未找到

    我正在将所有支持 appcompat 库迁移到 androidx 所有更新后 由于此错误 我无法构建我的项目 app processDebugManifest UP TO DATE AGPBI kind error text error r
  • 禁用 Android Monkey 上的系统级事件

    当猴子测试我的应用程序时 adb shell monkey p com foo bar throttle 1000 v 14400 我注意到它可以访问我设备上的各种系统设置 例如音频控制和屏幕截图 根据http developer andr
  • 如何创建看起来与 ContextMenu 完全相同的对话框?

    有时使用标准活动方法来创建上下文菜单并不方便 因为一个活动中可能有很多地方 但在不同的类中 需要显示上下文菜单 但从任何地方创建对话框都很容易 如何创建看起来与 ContextMenu 完全相同的对话框 我在哪里可以找到标准上下文菜单的布局
  • 从 android 发送数组并使用 Volley 在 PhP 服务器接收

    你好我想发送一个字符串值数组到 PhP 服务器和 PhP 解码并将它们存储在 PhP 变量中 这是我在 android studio 的代码 private void getEventDetailRespond RequestQueue r
  • 哪里可以获得 Android Studio Arctic Fox uninstall.exe 文件?

    目前 我遇到了一些 android studio 插件无法正常工作的问题 因此我尝试卸载并重新安装 android studio 但由于 uninstall exe 丢失而失败 我直接找到并卸载了 android studio 的大部分文件
  • Android 嵌套片段问题“java.lang.IllegalStateException:活动已被销毁”

    您可能知道 Android 支持嵌套片段 也是通过 API 级别 17 的支持库实现的 所以基本上我正在尝试将嵌套片段添加到 ViewPager 的片段之一中 并熟悉这一新的好功能 在第一次应用程序启动时 一切都按预期工作 即我可以添加子片
  • 滚动后 ListView 未显示正确的值

    在我的应用程序中我使用的是CustomListView与ArrayAdapter显示不同国家的时间 但在 6 到 7 行之后 取决于手机屏幕尺寸 时间值会重复 根据之前的一些文章 我编写了以下代码片段来获得解决方案 但问题仍然存在 以下是我

随机推荐