Cordova 6.4.0 Android错误在构建版本时发布apk

时间:2016-10-31 20:11:06

标签: android cordova gradle build release

我有一个项目在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

3 个答案:

答案 0 :(得分:3)

此问题已解决:https://issues.apache.org/jira/browse/CB-12159

截至目前,您可以使用cordova platform add android@6.2.0-nightly.2016.12.9.6c60dc5dcordova 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 ,如果被冒犯就道歉!