我正在尝试将我的项目迁移到gradle。我的一个项目有多种产品风格,并且每个项目都必须在其发布版本中使用不同的signingConfig
进行签名。所以这是我到目前为止尝试的:
buildscript {
...
}
apply plugin: 'android'
android {
compileSdkVersion 17
buildToolsVersion '17'
signingConfigs {
flavor1 {
storeFile file("keystore")
storePassword "secret"
keyAlias "aliasForFlavor1"
keyPassword "secretFlavor1"
}
flavor2 {
storeFile file("keystore")
storePassword "secret"
keyAlias "aliasForFlavor2"
keyPassword "secretFlavor2"
}
}
productFlavors {
flavor1 {
signingConfig signingConfigs.flavor1
}
flavor1 {
signingConfig signingConfigs.flavor2
}
}
}
dependencies {
...
}
当我运行gradle build
时,我得到一个groovy.lang.MissingFieldException
和以下错误消息:
No such field: signingConfigs for class: com.android.build.gradle.internal.dsl.GroupableProductFlavorFactory
所以我假设productFlavors
。*Gradle脚本的一部分不是放置代码签名配置的正确位置。
android的gradle插件只支持按构建类型签名,而不支持按风格签名。这样做的原因是,任何给定的变体(构建类型风格)只能由一个键签名,但可以是多个风格组的组合。例如,您的口味组可以是cpu(x86/arm)和版本(免费/付费),这是四种不同的变体。
您正在寻找的解决方案是为不同的发布版本创建单独的构建类型。例如,您的生成类型可能是调试版、发布版、测试版,如下所示:
...
android {
...
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
}
release-beta {
initWith release
signingConfig signingConfigs.release-beta
}
}
}
上面的initWith告诉gradle,beta版应该是构建类型的副本,只使用不同的密钥签名。
根据用户指南,支持为口味签名配置。
这里的问题与signingConfigs对象的范围有关。我刚刚将其分配给productFlavors块内的一个变量,但在flavor1块外,以解决此问题:
productFlavors {
def flavor1SigningVariable = signingConfigs.flavor1
flavor1 {
...
signingConfig flavor1SigningVariable
...
}
您可以在构建类型中为每个风格声明签名配置。这是我的gradle文件,用于不同密钥库的版本签名风格。
android {
signingConfigs {
configFirst {
keyAlias 'alias'
keyPassword 'password'
storeFile file('first.keystore')
storePassword 'password'
}
configSecond {
keyAlias 'alias'
keyPassword 'password'
storeFile file('second.keystore')
storePassword 'password'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
productFlavors{
flavor1 {
applicationId "com.test.firstapp"
}
flavor2 {
applicationId "com.test.secondapp"
}
}
buildTypes {
release {
productFlavors.flavor1.signingConfig signingConfigs.configFirst
productFlavors.flavor2.signingConfig signingConfigs.configSecond
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
构建类型块应该放在productFlavors块之后,我的意思是顺序很重要。
当我试图给我的项目添加一种风格时,Gradle就是不想同步,即使我同步了,我也看不到构建变量中的风格。什么会导致这个问题?该项目有几个模块,我需要添加应用程序的味道。我的文件: 我从这里删除了一些信息,比如依赖关系、id等等,只是为了显示一个结构。
似乎WooCommerce产品的搜索功能没有检查“产品标签”分类术语,也没有检查SKU字段?我将SKU作为产品标签添加到它们各自的产品中,但当我搜索SKU时,它仍然没有返回任何内容。。。。如何使搜索功能检查产品标签术语?我尝试了很多方法,从添加tax\u查询到pre\u get\u post过滤器,再到一个全新的WP\u查询循环,由于某种原因,它无法搜索产品标签。。。。那么,产品标签的意义是什么呢
我想按价格、日期和发布年份等项目对产品进行排序。在发布年份的情况下,我做了一个分类法=发布年份 但它是不工作.我怎么能改变代码可能排序按发布年份顺序?
我试图做一些事情,比如:Woocommerce更新签出ajax!我正在为我的客户构建一个多步骤表单,其中客户正在使用ajax将产品添加到购物车中。当产品添加到购物车中时,我需要更新收银台。我尝试执行onclick功能,因此当用户在购物车中添加产品时,签出步骤将更新,而不刷新页面: 但它不起作用,我觉得我错过了一些明显的东西......任何提示?:)
null 我尝试过的相关帖子: 从单个生成类型生成使用不同密钥签名的多个生成 这需要为每种口味配置 它似乎没有使用我自定义的 null null 我的的重要部分如下所示:
更新:不推荐使用GCM,请使用FCM 我正在按照Google Developers页面中的指南实现新的Google云消息 我已经成功地运行并测试了它。但我现在的问题是,我有不同的产品风格,有不同的applicationID/packageName和不同的Google Cloud Messaging Project ID。必须放在而不是flavors文件夹中。 有什么方法可以使配置针对多种口味不同吗