我有一个项目在cordova 6.3.1上运作良好。
然后我将cordova和我的项目更新到6.4.0。在此之后,我第一次构建,gradle也自动更新。
现在我遇到了一个重要问题:
我需要在build.json文件中包含密钥库和别名密码,否则版本apk生成失败并出现错误。
我使用这样的build.json文件:
{
"android": {
"debug": {
"keystore": "C:\\Path\\To\\Keystores\\debug.keystore",
"storePassword": "debugpass",
"alias": "thedebugalias",
"password" : "debugpass",
"keystoreType": ""
},
"release": {
"keystore": "C:\\Path\\To\\Keystores\\theapp.keystore",
"storePassword": "",
"alias": "thealias",
"password" : "",
"keystoreType": ""
}
}
}
然后运行此命令以生成发布apk:
cordova build android --release --buildConfig=build.json
到目前为止,这种方法运行良好,它促使我输入密钥库和别名密码。然后建立了apk确定。
升级到Cordova 6.4.0后,它不再起作用了。它从不提示密码,然后构建过程失败,因为"密钥库已被篡改或密码不正确"。
如果我在build.json文件中包含密码,那么发布apk就会生成好,因为它已经有了密码,并且不需要提示它们。
我不想在build.json文件中以明文形式提供密钥库密码。有没有人遇到过同样的问题?关于如何解决这个问题的任何想法?
感谢。
编辑:我注意到另一个问题。它没有显示我的图标和启动画面。 编辑:最后一个问题,关于没有显示图标和启动画面,是新Cordova版本中的一个错误,它正在解决https://issues.apache.org/jira/browse/CB-12077答案 0 :(得分:3)
此问题已解决:https://issues.apache.org/jira/browse/CB-12159
截至目前,您可以使用cordova platform add android@6.2.0-nightly.2016.12.9.6c60dc5d
或cordova platform add https://github.com/apache/cordova-android
请记住,第二个命令会添加最新版本,并且可能会引入其他错误....
将来您可以使用cordova platform add android@6.2.0
但截至目前6.2.0
不存在。 (点击此处:https://github.com/apache/cordova-android/releases)
答案 1 :(得分:1)
尝试更改build.gradle
' if (task.name == 'validateReleaseSigning')
至if (task.name == 'assembleRelease')
。
这可能与最近的cordova-android更新中的gradle版本更新有关。
更新:似乎validateReleaseSigning
任务名称在较新的Gradle版本中已更改为validateSigningRelease
:\
所以,下一个平台版本中的问题should be fixed(当前是6.2.0-dev)。
更新#2 :PR已合并,因此您现在可以使用cordova platform add https://github.com/apache/cordova-android
(请注意未发布的版本)。
答案 2 :(得分:1)
您可以将密码放入build.json中,看看是否有效。
{
"android": {
"release": {
"keystore": "path\\to\\keystore.keystore",
"storePassword": "password",
"alias": "alias",
"password" : "password",
"keystoreType": ""
}
}
}
我与你自己的版本相同,这是我的build.json。
然后我改为发布并构建解决方案以获取release.apk
我知道 cmd4life ,如果被冒犯就道歉!