Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova签名android应用程序:不使用build.json_Android_Cordova_Gradle_Cordova 5.0.0 - Fatal编程技术网

Cordova签名android应用程序:不使用build.json

Cordova签名android应用程序:不使用build.json,android,cordova,gradle,cordova-5.0.0,Android,Cordova,Gradle,Cordova 5.0.0,我在cordova 5.x上工作,我会生成一个签名apk 我开始在cordova项目的根目录下使用build.json和Certificate凭据: { "android": { "debug": { "keystore": "cert.keystore", "storePassword": "*****", "alias": "1", "password" : "*****", "keystoreType": "PKCS12

我在cordova 5.x上工作,我会生成一个签名apk

我开始在cordova项目的根目录下使用build.json和Certificate凭据:

{
  "android": {
   "debug": {
      "keystore": "cert.keystore",
      "storePassword": "*****",
      "alias": "1",
      "password" : "*****",
      "keystoreType": "PKCS12"
    },
它在platforms/android中创建一个release-signing.properties,如下所示:

key.store=..\\..\\cert.keystore
key.alias=1
key.store.password=*****
key.alias.password=*****
key.store.type=PKCS12
storeFile=..\\..\\cert.keystore
storePassword=*****
keystoreType=PKCS12
keyAlias=1
keyPassword=*****
但是我有一个错误:cert.keystore“:DerInputStream.getLength():lengthTag=109,太大(因为它不理解密钥是PKCS12类型)

在我编写自己的release-signing.properties之后:

key.store=..\\..\\cert.keystore
key.alias=1
key.store.password=*****
key.alias.password=*****
key.store.type=PKCS12
storeFile=..\\..\\cert.keystore
storePassword=*****
keystoreType=PKCS12
keyAlias=1
keyPassword=*****

而且它是有效的…所以我不明白为什么第一个解决方案不起作用。

在Cordova 5上,不需要手动编辑此“release signing.properties”文件

您只需将“build.json”和“cert.keystore”文件保存在项目的根目录下(与您已经做的完全相同)。然后,在cordova CLI上运行以下命令:

cordova构建android——发布


此外,您不应触摸平台文件夹中的任何文件。在我的情况下,我甚至不在git repo上跟踪它们。

可能是名称:keystoreType=keystore.typeYou尝试生成发布版本吗?看起来build.json只指定调试版本的配置。我的build.json文件中只有一个发布配置。当我运行cordova build android--release时,它会在适当的目录中生成android-release.apk文件。问题是配置文件,android compile不理解证书密钥格式。因此,我使用另一个带有“jarsigner”和zipalign的解决方案,这是可行的