为发布和调试等不同模式定义不同键的正确方法是什么

时间:2016-02-22 06:48:16

标签: android android-gradle build.gradle

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

        buildTypes.each {

            it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_RELEASE
            it.buildConfigField 'String',  'PARSE_APPLICATION_ID', PARSE_RELEASE_APPLICATION_ID
            it.buildConfigField 'String',  'PARSE_CLIENT_ID', PARSE_RELEASE_CLIENT_ID
            it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_LIVE
        }
    }

    debug {
        versionNameSuffix "-DEBUG"
        applicationIdSuffix ".debug"

        buildTypes.each {
            it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_DEBUG
            it.buildConfigField 'String',  'PARSE_APPLICATION_ID', PARSE_DEBUG_APPLICATION_ID
            it.buildConfigField 'String',  'PARSE_CLIENT_ID', PARSE_DEBUG_CLIENT_ID
            it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_TEST
         }
    }
}

但它无法工作,即使在发布模式下也始终生成调试密钥。 (我从gradle.properties提供的所有变量值)

1 个答案:

答案 0 :(得分:-1)

它是 buildTypes.each 的错误它每次都被执行并且只为调试发布创建一个密钥(根据build.gradle I中编写的序列,调试密钥或发布密钥)想)
这就是我解决这个问题的方法      创建了两种不同类型的构建 buildTypes.debug buildTypes.release

buildTypes {
        release {
        minifyEnabled true
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }

    /*While app is in debug mode disable crashlytics*/
    debug {
        versionNameSuffix "-DEBUG"
        applicationIdSuffix ".debug"
    }
}

buildTypes.debug {
    it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_DEBUG
    it.buildConfigField 'String',  'PARSE_APPLICATION_ID', PARSE_DEBUG_APPLICATION_ID
    it.buildConfigField 'String',  'PARSE_CLIENT_ID', PARSE_DEBUG_CLIENT_ID
    it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_TEST
}

buildTypes.release {
    it.buildConfigField 'String', 'GOOGLE_ANALYTIC_KEY', GoogleTracker_KEY_RELEASE
    it.buildConfigField 'String',  'PARSE_APPLICATION_ID', PARSE_RELEASE_APPLICATION_ID
    it.buildConfigField 'String',  'PARSE_CLIENT_ID', PARSE_RELEASE_CLIENT_ID
    it.buildConfigField 'Boolean', 'BRANCH_IO_MODE_IS_LIVE', BRANCH_IO_MODE_LIVE
}