当前位置: 首页 > 知识库问答 >
问题:

无法基于build类型签署apk

景志
2023-03-14

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

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个答案

李谦
2023-03-14

试试这个,它可能对你有帮助

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")
        }

    }
 类似资料:
  • 我有4个gradle构建文件:当我在android studio中构建时,我经常出现以下错误: 没有方法的签名:org.gradle.model.ModelMap.getDefaultProguardFile()适用于参数类型:(java.lang.String)值:[proguard android.txt] 文件1 文件2 文件3 文件4 请:有人能帮我理解为什么我总是以下错误: 没有方法的签

  • 我有一个现有的C#泛型类,希望根据使用的类型添加或删除一个方法,我解释道 对于特定的

  • 我正在制作一个Java类,在这个类中,我可以用DTO对列表应用一个过滤器(searchterms)。筛选器如下所示: 在我的类中,我有以下方法,将所有筛选器应用到列表: 但是根据字段的类型有不同的实现。与字符串类似,我创建了一个正则表达式: 但就像一个Float我想要另一个比较,我不想应用正则表达式到一个Float。要确保根据字段的类型调用正确的方法,最好的方法是什么?

  • 问题内容: 在JavaScript中,每个对象同时是一个实例和一个类。要进行继承,可以将任何对象实例用作原型。 在Python,C ++等中,有类和实例作为单独的概念。为了进行继承,您必须使用基类创建一个新类,然后可以使用该新类来生成派生实例。 为什么JavaScript朝这个方向发展(基于原型的面向对象)?与传统的基于类的OO相比,基于原型的OO有哪些优点和缺点? 问题答案: 这里大约有一百个术

  • 我想用一个新的应用程序包更新我在Play Store上的应用程序(以前我上传APK)。但是当我试图用我用来签名APK的密钥生成签名应用程序包时,Android Studio给我的消息Keystore被篡改,或密码不正确。如何生成签名的应用程序包,以便将其上传到播放控制台? 我表演了清洁 用我用来上传APK的现有密钥生成应用程序捆绑包时,会出现以下错误: 使用此堆栈跟踪: 我如何解决这个问题,我遗漏

  • 我正在做一个maven构建在我的jenkins和创建一个战争文件,我已经配置了webphere部署插件,并成功地测试了连接。我试图部署战争文件webshere部署插件,但我得到一个错误 部署到IBM WebSphere Application Server时出错:应为Ant GLOB模式。 我猜在我部署maven build时,它需要一个ant构建。 我在jenkins中复制了WebSphereD