由于Xamarin新安装,我的debug.keystore丢失。我能找回它吗?

由于Xamarin新安装,我的debug.keystore丢失。我能找回它吗?,xamarin,xamarin.android,keytool,Xamarin,Xamarin.android,Keytool,我使用Xamarin制作的APK进行演示,并使用默认的debug.keystore进行签名。由于新的Xamarin安装,密钥库已更改,现在我无法升级apk的新版本,因为我遇到了“Application not Installed”(应用程序未安装)错误。出于几个原因,我不希望我的用户卸载以前的应用程序,从而丢失数据。 我同意在发布时不需要使用调试密钥(我已经学到了这一课),但有没有办法通过其签名和应用程序的签名来重新创建以前的debug.keystore 这是debug.keystore的key

我使用Xamarin制作的APK进行演示,并使用默认的debug.keystore进行签名。由于新的Xamarin安装,密钥库已更改,现在我无法升级apk的新版本,因为我遇到了“Application not Installed”(应用程序未安装)错误。出于几个原因,我不希望我的用户卸载以前的应用程序,从而丢失数据。 我同意在发布时不需要使用调试密钥(我已经学到了这一课),但有没有办法通过其签名和应用程序的签名来重新创建以前的debug.keystore

这是debug.keystore的keytool输出:

Nome alias: androiddebugkey
Data di creazione: 3-apr-2016
Tipo di voce: PrivateKeyEntry
Lunghezza catena certificati: 1
Certificato[1]:
Proprietario: CN=Android Debug, O=Android, C=US
AutoritÓ emittente: CN=Android Debug, O=Android, C=US
Numero di serie: 76df3d0d
Valido da: Sun Apr 03 15:22:52 CEST 2016 a: Tue Mar 27 15:22:52 CEST 2046
Impronte digitali certificato:
         MD5:  4C:00:43:61:97:17:DF:B1:95:42:37:53:30:1A:A4:AC
         SHA1: D5:48:B9:2A:09:66:58:B8:38:16:88:60:47:F3:BF:87:2C:6B:3F:5E
         SHA256: 58:36:AF:FB:45:2B:E8:9E:C3:8D:F4:77:75:FF:F6:6E:84:69:3E:06:35:37:45:F5:D3:65:A9:4B:68:22:98:AC
         Nome algoritmo firma: SHA256withRSA
         Versione: 3

Estensioni:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 44 00 83 0D B8 9B 86 88   91 A0 14 D0 8D 72 39 83  D............r9.
0010: ED F1 7D E7                                        ....
]
]
这是我的应用程序ANDROIDD.RSA指纹:

AutoritÓ emittente: CN=Android Debug, O=Android, C=US
Numero di serie: 2f716439
Valido da: Mon Sep 14 19:26:58 CEST 2015 a: Wed Sep 06 19:26:58 CEST 2045
Impronte digitali certificato:
         MD5:  A3:FF:BC:BA:EF:72:BC:89:1C:42:6A:99:09:B7:C9:EE
         SHA1: 8D:16:7B:03:99:8A:4F:1C:F4:AC:E1:7D:6A:18:62:58:74:FC:0E:CB
         SHA256: D1:37:98:26:74:F7:58:C7:06:17:4B:9E:3A:76:C9:23:6B:D9:D4:38:22:6A:9A:87:82:6A:58:2A:F7:2E:94:B6
         Nome algoritmo firma: SHA256withRSA
         Versione: 3

Estensioni:

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: E3 BB C0 63 F2 60 C6 B0   94 2A 29 68 36 F0 A8 A8  ...c.`...*)h6...
0010: 1E 97 B6 D3                                        ....
]
]
所以问题是:有了这些信息,我可以重新创建以前的debug.keystore来无缝升级应用程序吗

非常感谢您的关注

问候,,
Danilo

您无法恢复旧版本(除非执行系统还原/etc)。因此,您只需创建一个新的:

keytool-genkey-v-keystore debug.keystore-alias androiddebugkey-storepass android-keypass android-keyalg RSA-validity 14000

然后,您可以将其放在相应的目录中:

窗口:

Mac:

您无法恢复旧版本(除非执行系统还原/etc)。因此,您只需创建一个新的:

keytool-genkey-v-keystore debug.keystore-alias androiddebugkey-storepass android-keypass android-keyalg RSA-validity 14000

然后,您可以将其放在相应的目录中:

窗口:

Mac:
我也有这个问题,尽管@Jon Douglas的回答是正确的,而且非常好。最简单的解决方案就是:

  • 打开Visualstudio
  • 创建新的Xamarin Android或Xamarin表单项目(使用Android目标项目)
  • 以调试模式运行项目

完成此操作后,visualstudio将自动为您重新创建debug.keystore,您将不需要运行任何脚本。

我也遇到了这个问题,尽管@Jon Douglas的回答是正确的,而且非常好。最简单的解决方案就是:

  • 打开Visualstudio
  • 创建新的Xamarin Android或Xamarin表单项目(使用Android目标项目)
  • 以调试模式运行项目

完成此操作后,visualstudio会自动为您重新创建debug.keystore,您无需运行任何脚本。

新的调试密钥是通过新安装创建的,我可以使用该密钥而不是再次创建它。但应用程序SHA指纹不足以创建旧密钥?不。创建密钥库后,您无法重新创建密钥库。你必须重新开始。谢谢Jon,我希望Xamarin使用仅依赖于PC的值对证书进行签名,以保留密钥,而不是为同一台机器上的每个安装创建一个新密钥。当我这样做时,它会提示各种信息-公司、城市、州等-但不要求新密码。当然,我需要生成我的SHA。那么如何获取/指定新密码呢?@PeterWebb我的答案中的命令已经有了一个keypass(我们用于类似于android的调试存储的默认密码)。您可以将该参数更改为您想要的任何密码。新的调试密钥是由新安装创建的,我可以使用该密钥而不是再次创建它。但应用程序SHA指纹不足以创建旧密钥?不。创建密钥库后,您无法重新创建密钥库。你必须重新开始。谢谢Jon,我希望Xamarin使用仅依赖于PC的值对证书进行签名,以保留密钥,而不是为同一台机器上的每个安装创建一个新密钥。当我这样做时,它会提示各种信息-公司、城市、州等-但不要求新密码。当然,我需要生成我的SHA。那么如何获取/指定新密码呢?@PeterWebb我的答案中的命令已经有了一个keypass(我们用于类似于android的调试存储的默认密码)。您可以将该参数更改为您想要的任何密码。这非常有用!这很有帮助!