android - 如何在Android Gradle中为每个构建变体设置packageNameSuffix?

标签 android gradle android-gradle-plugin

我们的应用程序有免费和付费版本。我们还制作品牌版本,这意味着应用程序在两个维度上有所不同。

四个版本可能是:

  • 该应用程序,耐克编辑。免费
  • APP,耐克编辑。付费
  • 该应用程序,阿迪达斯版。付费
  • 该应用程序,阿迪达斯版。免费

  • 我现在的解决方案是拥有两种构建类型,付费和免费:
      buildTypes {
            paid {
                packageNameSuffix ".paid"
            }
    
            free {
                packageNameSuffix ".free"
            }
        }
    

    有两种 flavor :
    productFlavors{
        nike{
            packageName "com.example.theapp.nike"
        }
    
        adidas{
            packageName "com.example.theapp.adidas"
        }
    
    }
    

    出于传统原因,我们的应用变体之一没有免费后缀,但仍将作为免费版本处理。我想要的是在buildTypes-block中设置packageNameSuffix时能够掌握构建风格。用伪代码,我想要这样的东西:
     buildTypes {
            free {
                if( buildFlavor != "nike"){
                    packageNameSuffix ".free"
                }
            }
        }
    

    可能吗?

    最佳答案

    是。有可能的。您可以通过创建4个项目来使用此功能,并且每个项目都具有一个包含单个类文件的Package,该文件表示它是App1 / App2的免费/付费版本,而Library项目则包含所有4个应用程序的内容。

    关于android - 如何在Android Gradle中为每个构建变体设置packageNameSuffix?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316760/

    相关文章:

    android - calabash-android 在 Jenkins 下运行时给出 "No keystores found."

    android - 通过 gradle 添加 fmod

    android - 在自定义 ContentProvider 的 fillWindow() 方法中做什么?

    android - 从哪里获得 ADT 18 for eclipse?

    android - `dependencies` 和 `androidDependencies` 之间的输出不同

    android-gradle-plugin - 如果我已经在使用 Crashlytics,是否需要在 Android Studio 中为 Fabric Answers 添加 gradle 导入?

    android - 如何在 libgdx 中围绕其中心拖动时旋转一个圆圈?

    java - 在 Android Studio 中使用 MapView 时 INSTALL_FAILED_MISSING_SHARED_LIBRARY

    spring-boot - 安慰:未知的持久主题端点

    android - 为什么 Gradle 需要这么长时间来构建?