我试图寻找类似的问题,但是 没有运气。
我正在从命令行构建我的Gradle项目, 并在gradle release命令行中提供密码 使用-P。
这是我的build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.3'
}
}
apply plugin: 'android'
android {
signingConfigs {
release {
storeFile file("C:/Android/Dev/keystore/dm.keystore")
keyAlias KEY_ALIAS
storePassword STORE_PASSWORD
keyPassword KEY_PASSWORD
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
compileSdkVersion 'android-13'
buildToolsVersion '22.0.1'
buildTypes {
release {
minifyEnabled false
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
}
当我尝试干净时,它给了我:
无法在SigningConfig_Decorated上找到属性“KEY_ALIAS”{name = release,storeFile = C:\ Android \ dev \ keystore \ dm.keystore,storePassword = null,keyAlias = null,keyPassword = null,storeType = C:\ Android \ dev的\密钥库\ dm.keystore}。
有人说'签名会'应该在之前 'buildTypes',确实如此。
有什么方法可以保留'signingConfigs' 在那里,但可能会以某种方式修改,而不是抱怨?
如果我将'signingConfigs'取出,并在我发布之前添加它 它有效。
谢谢!
答案 0 :(得分:4)
试试这个
def key="default"
def storePass="default"
def keyPass="default"
if (project.hasProperty("KEY_ALIAS")) {
key = KEY_ALIAS
}
if (project.hasProperty("STORE_PASSWORD")) {
storePass = STORE_PASSWORD
}
if (project.hasProperty("KEY_PASSWORD")) {
keyPass = KEY_PASSWORD
}
signingConfigs {
release {
storeFile file("C:/Android/Dev/keystore/dm.keystore")
keyAlias key
storePassword storePass
keyPassword keyPass
}
}
我还建议您将签名信息存储在单独的文件中