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

多个变体的多个signingConfigs

秦英发
2023-03-14
buildTypes {
    beta {
        signingConfigs.beta
    }
    release {
        signingConfigs.release
    }
}

或者,使用风味,在这种情况下,所有自由变体都将具有相同的符号configs:

productFlavors {
    free {
        signingConfig signingConfigs.free
        applicationId 'com.example.free'
    }
    paid {
        signingConfig signingConfigs.paid
        applicationId 'com.example.paid'
    }
}

在当前的ProductFlayer闭包中有没有一种方法可以做到这一点?是否只能通过重写android.applicationvariants.all{variant->并基于某种命名方案或其他丑陋的黑客行为为每个应用程序变体手动应用signingConfig来解决这个问题?

我也找到了这个答案,但在最新的构建工具中似乎不起作用;编译时,我得到以下错误:

共有1个答案

阎丰羽
2023-03-14

链接的答案实际上很有效。我让它像这样编译(使用BuildTools1.3.1和Gradle-Wrapper2.7)。您所遇到的错误(在ProductFlavel容器上找不到属性“free”)很肯定是由于这样一个事实,即您的构建类型是在构建中的productFlavors之前定义的。gradle

这行不通

signingConfigs {
    freeBeta {}
    freeRelease {}
    paidBeta {}
    paidRelease {}
}    
buildTypes {
    debug {}
    beta {}
    release {}
}
productFlavors {
    free {}
    paid {}
}

这将起作用(只需交换productFlavors和buildType的定义顺序)

signingConfigs {
    freeBeta {}
    freeRelease {}
    paidBeta {}
    paidRelease {}
}    
productFlavors {
    free {}
    paid {}
}    
buildTypes {
    debug {}
    beta {}
    release {}
}
signingConfigs {
        freeBeta {
            keyAlias 'freeBeta'
            keyPassword 'test'
            storeFile file('C:/keystore.jks')
            storePassword 'test'
        }
        freeRelease {
            keyAlias 'freeRelease'
            keyPassword 'test'
            storeFile file('C:/keystore.jks')
            storePassword 'test'
        }
        paidBeta {
            keyAlias 'paidBeta'
            keyPassword 'test'
            storeFile file('C:/keystore.jks')
            storePassword 'test'
        }
        paidRelease {
            keyAlias 'paidRelease'
            keyPassword 'test'
            storeFile file('C:/keystore.jks')
            storePassword 'test'
        }
    }

    productFlavors {
        free {

        }
        paid {

        }
    }

    buildTypes {
        debug {

        }
        beta {
            productFlavors.free.signingConfig signingConfigs.freeBeta
            productFlavors.paid.signingConfig signingConfigs.paidBeta
        }
        release {
            productFlavors.free.signingConfig signingConfigs.freeRelease
            productFlavors.paid.signingConfig signingConfigs.paidRelease                
        }
    }
 类似资料:
  • 首先,我已经阅读了Hibernate——一个包含多个实体的表?。 然而,我希望将两个实体映射到同一个表,但我希望它们都是实体,我可以从中选择。我的意思是: 一个表:人(id、姓名、出生日期、城市、街道、邮政编码)。 两个实体:人(id、name、dateOfBirth)、地址(id、城市、街道、邮政编码)。 实体之间是1:1的关系,但数据库中仍然是1个表。 如果我在上面的链接中使用建议的解决方案(

  • 我有mysql_服务器_1。数据库1。使用者 和mysql_服务器_2。数据库3。用户收入 如何查询用户的行 如何从users_revenue查询行 首先,我已经设置了连接: 使用者服务ts 然后,这段代码返回一个空数组,而不是数据库中存在这么多行; ---更新---我看了一下typeorm源代码:https://github.com/nestjs/typeorm/blob/8af34889fa7

  • 问题内容: 我想用Python(不是数组)中的一个创建10个变量。像这样: 我想创建的变量名,在这种情况下: ,,,…, 我不想一个数组 我有一个坐标图(640 x 480)。我正在确定像素颜色为白色的坐标。地面上有3个球,我想获取每个球的中心坐标,因此,如果要评估的坐标距离最后一个球很近,则x和y坐标将被平均(如果该坐标属于a)新球的坐标将属于新坐标组。 问题答案: 您不应该这样做,但是如果您真

  • 我正在用JavaFX开发一个音乐库应用程序,我在如何正确使用MediaPlayer类方面遇到了一些问题。 这是我目前设置和播放音频文件的方法: 比如说,我有两个音频文件。。。 ...以及将这两个文件中的一个发送到上述方法的两个按钮: 通常,两个音频文件都会相互播放是有意义的,因为每次调用该方法时我都会创建一个新的MediaPlayer对象,但是,该对象是静态的。也许我误解了静态对象的工作原理,但这

  • 我有一个User类,它有一些附加属性: 现在,如果我调用一些方法来改变其中一个房子(例如改变它的名称属性),如果我调用,我仍然会得到房子的旧值: 我如何确保它总是更新?

  • 我正在编写一些VBA代码,这些代码应该遍历特定文件夹中的所有Excel文件(文件夹名称总是格式化为月份年份,例如2020年5月)。在我的代码中,我还需要使用单独的“月份”和“年份”字符串,例如“五月”和“2020年”,以及日期格式mm/?? /yy例如5/?? /20(日期不重要,所以我只是把? 到目前为止,我使用让用户选择文件夹,我使用三次来获取字符串和日期。 有没有办法压缩它,让用户只需要做一