无法根据构建类型对apk进行签名

时间:2019-03-27 02:47:19

标签: android android-gradle

我们的应用程序通过不同的客户端支持不同的产品风格,因此我们具有不同的密钥库文件。我们需要根据类似的构建类型对构建进行签名。 “调试”,“发布”,“生产”。

android {
    buildTypes {
        debug {
            signingConfig null
        }
        release {
            signingConfig null
        }
        production {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard- 
            android.txt'), 'proguard-production.pro'
            applicationIdSuffix ".production"
        }
    }

    signingConfigs {
        A {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('xxxx')
            storePassword 'xxxx'
        }

        B {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('xxxx')
            storePassword 'xxxx'
        }

        C {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('xxxx')
            storePassword 'xxxx'
        }

        D {
            keyAlias 'xxx'
            keyPassword 'xxx'
            storeFile file('xxxx')
            storePassword 'xxxx'
        }
    }

    productFlavors {
        X {
            if (buildTypes == "production") {
                signingConfig signingConfigs.A
            }
        }
        Y {
            if (buildTypes == "production") {
                signingConfig signingConfigs.B
            }

        }
        Z {

            if (buildTypes == "production") {
                signingConfig signingConfigs.C
            }

        }

    }
}

我们需要像我在代码部分中提到的解决方案。 请帮助我解决此问题说明。

thank you in advance

1 个答案:

答案 0 :(得分:0)

尝试一下可能会对您有所帮助

signingConfigs {

        Alias1Config {
            keyAlias 'keyAlis1'
            keyPassword '123456789'
            storeFile file('D:/ABS/XYZ/keyAlis1.jks')
            storePassword '1234567989'
        }

        Alias2Config {
            keyAlias 'keyAlis2'
            keyPassword '123456789'
            storeFile file('D:/ABS/XYZ/keyAlis1.jks')
            storePassword '1234567989'
        }

    }

productFlavors {
        aliasV1 {
            applicationId "com.abc.xyz"
            versionCode 1
            versionName "1.0"
            signingConfig signingConfigs.Alias1Config
            setProperty("archivesBaseName", "ABC_APP_$versionName.$versionCode")
        }
        aliasV2 {
            applicationId "com.abc.xyz.pqr"
            versionCode 1
            versionName "1.0"
            signingConfig signingConfigs.Alias2Config
            setProperty("archivesBaseName", "PQR_APP_$versionName.$versionCode")
        }

    }