APK已经签署了过期的证书,如何更新现有的Android Xamarin应用程序的密钥库有效性?

时间:2017-10-12 20:00:04

标签: android xamarin certificate keystore

尝试通过Visual Studio存档/分发流程将APK上传到Google Play时,由于证书已过期而失败。我使用keytool -list验证了这一点并验证它确实已过期。如何更新现有密钥库的证书有效性?我尝试在VS中的归档过程中导入我现有的密钥库,它抱怨过期过期而不上传。我尝试创建一个新的密钥库并上传到我现有的应用程序,但收到一条消息:

"您上传的APK使用与之前的APK不同的证书进行了签名。您必须使用相同的证书。您现有的APK使用带有指纹的证书进行签名:..."

我假设我需要在我的密钥库本身上以某种方式使用keytool.exe更新有效性。我从命令行尝试了这个声明,希望它会更新,但它抱怨我的别名已经存在:

keytool.exe -genkey -v -keystore myapp.keystore -alias myoriginalalias -keyalg RSA -keysize 2048 -validity 20000

我尝试使用新的别名,它要求输入密码,我从未设置过,或者如果与密钥库密码相同则返回,然后按Enter键。然后我得到一个keytool错误:java.io.FileNotFoundException:myapp.keystore(访问被拒绝)。

我需要先使用密码创建别名吗?如果是这样的话?自从我手动完成此操作已经有一段时间了。或者是否应该使用其他工具或keytool上的其他选项?我没有看到更新有效性选项。我觉得我在这里越来越近了,我的搜索空虚。这里的任何指针将不胜感激。提前谢谢。

基本上,更新Google Play商店中现有应用的密钥库有效期的流程是什么?有可能吗?

1 个答案:

答案 0 :(得分:0)

  

如果您计划支持应用升级,请确保您的应用签名密钥的有效期超过该应用的预期生命周期。建议有效期为25年或更长。当密钥的有效期到期后,用户将无法再无缝升级到您应用的新版本。

证书到期后,您唯一可以做的就是使用新的应用ID 和新证书重新发布应用。

  

您应该在应用的预期生命周期内使用相同的证书对所有APK进行签名。您应该这样做有几个原因:

     

应用升级:当系统正在为应用安装更新时,它会将新版本中的证书与现有版本中的证书进行比较。如果证书匹配,系统允许更新。如果您使用其他证书对新版本进行签名,则必须为应用程序分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用程序。

回复:https://developer.android.com/studio/publish/app-signing.html#considerations