我知道以前有人问过这个问题,但我很确定我使用的是同一个密钥库。我存储了用于签署应用程序第一个版本的密钥库,然后使用该密钥库创建第二个版本。
jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore app_signing.keystore target/HNewsDroid-2.0.apk release
zipalign -v 4 target/HNewsDroid-2.0.apk target/HNewsDroid-2.0-release.apk I
尽管我无法访问我以前使用keytool生成app_signing.keystore的Linux安装,但我相信在对jar进行签名时,只有keystore文件需要是相同的(即使我的私人ssh密钥在新的Linux安装中发生了更改(。
如果有帮助的话,我会使用maven android插件来生成jars/apk。
有人能指出我做错了什么吗?
编辑:
我不知道为什么我在应用程序上签名的证书不起作用。最后,我更改了包名,并将应用程序作为新应用程序上传。
keytool -list -v -keystore app_signing.keystore
-获取证书信息并检查其是否正常
您的假设是正确的,即只有密钥库需要相同——机器上的专用SSH密钥无关紧要。
您可以在任意多台不同的机器上对应用程序进行签名(假设您使用的是相同的密钥库(。
原来我用keytool错误地生成了私钥。它有两个名字,这就是问题的根源。我只使用一个名称重新生成了证书,问题就消失了。