由于 Xamarin 的新安装,我的 debug.keystore 丢失了。我可以恢复吗?
Lost my debug.keystore due to Xamarin new installation. Can i recover it?
出于演示目的,我正在使用由 Xamarin 制作并使用默认 debug.keystore 签名的 APK。由于新的 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 来无缝升级应用程序吗?
非常感谢您的关注。
此致,
达尼洛
你不能恢复旧的(除非你做一个系统restore/etc)。所以你只需要创建一个新的:
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000
然后您可以将其放在相应的目录中:
Windows: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/MD5_SHA1/#Windows
Mac:
https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/MD5_SHA1/#OSX
我也有这个问题,虽然@Jon Douglas 的回答是正确的而且非常好。最简单的解决方案就是:
- 打开 Visualstudio,
- 创建一个新的 Xamarin Android 或 Xamarin Forms 项目(目标项目 android)
- 运行调试模式下的项目
执行此操作后,visualstudio 会自动为您重新创建 debug.keystore,您将不需要 运行 任何脚本。
出于演示目的,我正在使用由 Xamarin 制作并使用默认 debug.keystore 签名的 APK。由于新的 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 来无缝升级应用程序吗?
非常感谢您的关注。
此致, 达尼洛
你不能恢复旧的(除非你做一个系统restore/etc)。所以你只需要创建一个新的:
keytool -genkey -v -keystore debug.keystore -alias androiddebugkey -storepass android -keypass android -keyalg RSA -validity 14000
然后您可以将其放在相应的目录中:
Windows: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/MD5_SHA1/#Windows
Mac: https://developer.xamarin.com/guides/android/deployment,_testing,_and_metrics/MD5_SHA1/#OSX
我也有这个问题,虽然@Jon Douglas 的回答是正确的而且非常好。最简单的解决方案就是:
- 打开 Visualstudio,
- 创建一个新的 Xamarin Android 或 Xamarin Forms 项目(目标项目 android)
- 运行调试模式下的项目
执行此操作后,visualstudio 会自动为您重新创建 debug.keystore,您将不需要 运行 任何脚本。