2013-01-09 52 views
0

我知道这个问题以前已经被问过了,但我确定我使用的是同一个密钥仓库。 我存储了用于签署我的应用程序的第一个版本的密钥库,然后使用它来创建第二个版本。Android apk上传失败,错误'apk必须使用与前一个相同的证书进行签名'

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 

即使我已经从那里我生成使用密钥工具的app_signing.keystore我以前安装Linux时用不上,我只相信密钥库文件必须相同,同时签署罐子(即使我的私人SSH关键在我的新Linux安装上发生了变化)。

如果有帮助,我使用maven android插件来生成jar/apks。

有人能指出我做错了什么吗?

编辑:

我不知道为什么我的证书与工作不签我的应用程序。最后,我改变了我的软件包名称并将其作为新应用程序上传。

+1

你用'keytool -list -v -keystore app_signing.keystore'命令检查了有关证书的信息吗? – vchelbanster

回答

0

原来我错误地用keytool生成了私钥。它有两个名字,这是造成这个问题。我只用一个名字重新生成证书,问题就消失了。

2

keytool -list -v -keystore app_signing.keystore - 获得有关证书的信息,并检查其确定

+0

谢谢你的回复。我运行了命令并且证书是正确的(即与我用来签署第一个版本的那个相同)。 – Salil

1

你的是,只有密钥库需要相同的假设是正确的 - 你的机器上的SSH私钥无所谓。

您可以根据需要在任意多台不同的计算机上签名应用程序(假设您使用的是同一个密钥库)。

+0

嗯,谢谢。也许我在第一个版本中签署应用程序时犯了一个错误。我希望我可以使用相同的程序并签署我的后续版本。 – Salil

相关问题