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 密钥上正常工作。