当我来签署我的应用程序时,我遇到了一个大问题:我已根据文档设置了签名配置:
signingConfigs {
release {
storeFile file("lomapnew.keystore")
storePassword "myPassword"
keyAlias "myAlias"
keyPassword "Something...."
}
}
但我仍然收到此错误消息:“应在Gradle构建脚本中指定签名配置”
答案 0 :(得分:21)
我想出一个问题,猜测你没有为发布版本类型设置签名配置。调试构建类型是自动的,因此对于所有其他构建类型(包括发布)来说,这是不必要的步骤。
您可以像这样应用签名配置:
android {
signingConfigs {
// It's not necessary to specify, but I like to keep the debug keystore
// in SCM so all our debug builds (on all workstations) use the same
// key for convenience
debug {
storeFile file("debug.keystore")
}
release {
storeFile file("release.keystore")
storePassword "myPassword"
keyAlias "myAlias"
keyPassword "Something...."
}
}
buildTypes {
/* This one happens automatically
debug {
signingConfig signingConfigs.debug
}
*/
release {
signingConfig signingConfigs.release
}
}
}
答案 1 :(得分:1)
我喜欢将密码保存在我的构建文件中。因此,我创建了一个我用
加载的属性文件def keystorePropertiesFile = rootProject.file("./local.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
然后我像这样定义了signedConfigs:
signingConfigs {
releaseSigning {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['keystore.live.storepassword']
keyAlias = keystoreProperties['keystore.live.keyalias']
keyPassword = keystoreProperties['keystore.live.keypassword']
}
debugSigning {
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['keystore.debug.storepassword']
keyAlias = keystoreProperties['keystore.debug.keyalias']
keyPassword = keystoreProperties['keystore.debug.keypassword']
}
}
这对菜单选项“create Signed apk”不起作用,所以我创建了风味:
productFlavors {
mydebug {
signingConfig signingConfigs.debugSigning
}
myrelease {
signingConfig signingConfigs.releaseSigning
}
}
现在,signconfigs与工具栏上的运行按钮一起使用。对于默认密钥库,local.properties看起来像
ndk.dir=/opt/sdk/ndk-bundle
sdk.dir=/opt/sdk
storeFile=/home/christine/.android/debug.keystore
keystore.debug.storepasswd=android
keystore.debug.keyalias=androiddebugkey
keystore.debug.keypassword=android
keystore.live.storepasswd=android
keystore.live.keyalias=androiddebugkey
keystore.livetest.keypassword=android
在Jenkins构建脚本中,您需要创建一个从local.properties到构建服务器上属性文件所在的符号链接。
答案 2 :(得分:0)
已经给出了答案,但我想强调其他方法, 我们可以手动指定信息,如下所示,我们必须指定我们的密钥库位置的完整路径,如下所示
signingConfigs {
release {
storeFile file('O:/Android/Projects/yourKeyStore.jks')
storePassword "qwerty"
keyAlias "yourProjectKeyAlias"
keyPassword "ProjectKeyPassword"
}
}
如果您进入
,也可以在签名报告中指定文件 - >项目结构
选择您的项目应用程序模块并选择可以填写信息的签名报告,它将自动在gradle文件中添加以前的版本信息。
最后你只需要添加
signingConfig android.signingConfigs.release
在buildTypes {...}部分中。这将完成签署程序。