我很想将我的项目迁移到 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
所以我假设 Gradle 脚本的 productFlavors
.* 部分不是放置代码签名配置的正确位置。
最佳答案
您可以在 buildType
中为每个 flavor
声明 signing config
。这是我的 gradle 文件,用于使用不同的 keystore 发布签名风格。
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'
}
}
}
buildTypes
block 应该放在 productFlavors
block 之后,我的意思是顺序很重要。
https://stackoverflow.com/questions/17040494/
相关文章:
visual-studio - VS2005 : Assembly '
javascript - 用于版本控制和缩小 javascript 的 Maven 插件
ios - Swift 框架不适用于命名为 'Debug' 或 'Release' : No suc
c++ - 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值
build - CMakeLists.txt 中未使用 CMAKE_BUILD_TYPE
javascript - 我可以使用 webpack 分别生成 CSS 和 JS 吗?
visual-studio - Visual Studio 在构建期间不断挂起