通过命令行将密钥库密码传递给Cordova Android

通过命令行将密钥库密码传递给Cordova Android,android,cordova,Android,Cordova,我有一个Cordova项目,我正在尝试为Android构建它。我正在使用Cordova 5.3.3和Cordova android 5.0.0。根据Cordova Android的文档,为了让Cordova签署其生成的发布apk,我需要向其传递签名配置,包括密钥库密码和密钥密码。当我在by build.json(我通过--buildConfig属性将其传递给我的cordova build命令)中包含此配置时,一切都按预期工作。由于build.json被提交到Git,并且我希望密钥库和密钥密码不会

我有一个Cordova项目,我正在尝试为Android构建它。我正在使用Cordova 5.3.3和Cordova android 5.0.0。根据Cordova Android的文档,为了让Cordova签署其生成的发布apk,我需要向其传递签名配置,包括密钥库密码和密钥密码。当我在by build.json(我通过--buildConfig属性将其传递给我的cordova build命令)中包含此配置时,一切都按预期工作。由于build.json被提交到Git,并且我希望密钥库和密钥密码不会出现在那里,每个人都可以阅读,因此我试图找到另一种方法来传递这些密码。文件指出:

可以使用命令行参数指定这些参数 以生成或运行脚本

这让我相信我可以运行以下build命令在命令行中传递密码,而不是将其包含在build.json中:

cordova build android --release --buildConfig cordova-config/build.json --password myPassword
但是,此操作失败,出现以下错误:

未知平台:myPassword


我是否误读了文档中的内容,或者这是我使用的cordova android版本的问题?

这是命令:

 cordova build android --release --keystore=pathToKeystore --storePassword=kspassword --alias=aliasName --password=aliasPassword
但是有一个错误,它不工作

如果您将项目更新为cordova android 5.1.0,并用它替换platforms/android/cordova/lib/build.js,它将起作用(它可能与cordova android 5.0.0一起工作,但没有测试)


另一个选项是不提交build.json,或者不设置密码,如果您没有在build.json上提供密码,系统会提示您手动输入密码

如果您缺少双破折号,则应:

 cordova build android --release --buildConfig cordova-config/build.json -- --password myPassword

注意:应该使用double--来表示 特定于平台的参数,例如:


您正在使用哪个IDE?Eclipse还是Android Studio?IDE其实并不重要。我试图从命令行执行cordova build命令。将build.json放在gitignore上,这样它就不会被发布。我也希望这能起作用,但我得到了以下错误:未知平台:yourkystore.keystore、yourkystorepasswork、yourAlias、yourAlias passwork我已经更新了命令和答案,有一个bug,--keystore参数不起作用。事实上,使用等号似乎可以解决这个问题。谢谢你发现了。不修改build.js代码?然后我告诉你的bug可能只影响cordova android 5.1.0是的,它可能只影响5.1.0,事实是我没有时间检查。在任何情况下,在5.0.0中,只要我在命令行属性中使用=而不是空格,签名就会起作用。