Android不同的packageName与flavor

时间:2016-07-07 10:45:04

标签: android manifest build.gradle android-productflavors

我需要安装我的项目的两个版本(生产和开发)。我需要2个应用程序。我试图通过使用flavor来实现它,但是当我签署apk时,它总是使用相同的packageName(com.company.project)生成相同的应用程序。我已尝试从defaultConfig中删除applicationId,但它既不工作。在清单中,包名称为com.company.project。

任何人都知道该怎么做?

这是build.gradle

defaultConfig {
            multiDexEnabled true
            minSdkVersion 16
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            applicationId "com.company.project"
    }    
    productFlavors {
                development {
                    applicationId
                    "com.company.project.DEV"
                    versionName "1.0-dev"
                    resValue "string", "app_name", "Project-Dev"                     
                }
                production {
                    applicationId
                    "com.company.project.PROD"
                    resValue "string", "app_name", "Project-Prod"
                    versionName "1.0-prod"                        
                }
            }

1 个答案:

答案 0 :(得分:1)

创建productFlavors时,相应的gradle任务也会发生变化。

例如,您最初只有assembleDebugassembleRelease。但是,在实施productFlavors后,gradle任务将发生变化。以你的例子为考虑,它将是

  • assembleDevelopmentDebug
  • assembleDevelopmentRelease
  • assembleProductionDebug
  • assembleProductionRelease

如果您使用Android Studio,那么您不必担心gradle任务。只需从菜单中选择Build Variant即可构建项目。它将运行相应的gradle任务并安装构建。

我写了一篇博客解释这个,Product Flavors in AndroidGitHub上还提供了一个示例项目。