Apache Cordova - 无法生成 v1 签名

Apache Cordova - Failed to generate v1 signature

Cordova 8.1.1 (cordova-lib@8.1.0)
Android 7.1.1
OSX 10.13.6

以下 Cordova 发布构建命令出错。我们做错了什么?

$ cordova build --release android

BUILD FAILED in 5s
46 actionable tasks: 2 executed, 44 up-to-date
/Users/xxx/QS/platforms/android/gradlew: Command failed with exit code 1 Error output:
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:packageRelease'.
> Failed to generate v1 signature


build.json

  {
    "android": {
      "release": {
        "keystore": "/Users/xxx/QS/platforms/android/appreleasedemo.keystore",
        "storePassword": "password",
        "alias": "appreleasedemoalias",
        "password" : "password"
      }
    }
  }

密钥库存在:

$ keytool -keystore /Users/xxx/QS/platforms/android/appreleasedemo.keystore -list

Keystore type: jks
Keystore provider: SUN

Your keystore contains 1 entry

appreleasedemoalias, Oct 1, 2018, PrivateKeyEntry, 
Certificate fingerprint (SHA1): FC:63:EC:88:0A:A2:ED:B4:7A:34:C1:76:F9:98:F5:E0:8D:85:7A:4F

我发现我可以通过使用以下命令行构建新密钥文件来解决此问题,如 https://developer.android.com/studio/publish/app-signing.html 中所述:

keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias

具体来说,我认为问题在于默认值在某些时候已从 RSA 更改为 DSA,并且这些工具无法正确处理大型 DSA 密钥。