Android不同的packageName与flavor

Bor*_*rja 5 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"                        
                }
            }
Run Code Online (Sandbox Code Playgroud)

Bor*_*rja 1

最后我是这样做的:

def appName = 'AppName'
productFlavors {
    devel {
        applicationIdSuffix ".devel"
        def buildId, appNameLabel
        buildId = androidApplicationId + '.devel' + androidVersionCode
        appNameLabel = appName + 'd' + androidVersionName
        buildConfigField "String", "BUILD_ID", '"' + buildId + '"'
        manifestPlaceholders = [app_name_label: appNameLabel, buildId: buildId]        }

    QA { 
        applicationIdSuffix ".qa"
        def buildId, appNameLabel
        buildId = androidApplicationId + '.qa' + androidVersionCode
        appNameLabel = appName + 'q' + androidVersionName
        buildConfigField "String", "BUILD_ID", '"' + buildId + '"'
        manifestPlaceholders = [app_name_label: appNameLabel, buildId: buildId]
    }

    pro {
        buildConfigField "String", "BUILD_ID", '"' + androidApplicationId + '"'
        manifestPlaceholders = [app_name_label: appName, buildId: androidApplicationId]
    }
Run Code Online (Sandbox Code Playgroud)