2016-04-11 1 views
1

J'utilise à des fins de démonstration un fichier APK créé par Xamarin et signé avec le fichier debug.keystore par défaut. En raison de la nouvelle installation de Xamarin, le keystore est changé et maintenant je ne peux pas mettre à jour la nouvelle version de l'apk parce que je rencontre l'erreur 'Application not Installed'. Pour plusieurs raisons, je ne veux pas que mes utilisateurs désinstallent l'application précédente en perdant leurs données. Je suis d'accord que je n'ai pas besoin d'utiliser une clé de débogage pour la publication (j'ai appris cette leçon) mais y a-t-il un moyen de recréer le précédent debug.keystore par sa signature et celle de l'application?J'ai perdu mon fichier debug.keystore en raison de la nouvelle installation de Xamarin. Puis-je le récupérer?

C'est la sortie keytool de debug.keystore:

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          .... 
] 
] 

et ceci est mon empreinte App 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          .... 
] 
] 

La question est: ces informations je peux recréer précédente debug.keystore pour une mise à jour de l'application transparente?

Un grand merci pour votre attention.

Cordialement, Danilo

Répondre

2

Vous ne pouvez pas récupérer l'ancien (sauf si vous faites un système de restauration/etc). Ainsi, vous aurez juste pour créer un nouveau:

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

Vous pouvez le mettre dans le répertoire respectif:

Fenêtres: 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

+0

Nouveau La clé de débogage est juste créée par une nouvelle installation, je peux l'utiliser au lieu de la créer à nouveau. Mais l'empreinte digitale App SHA ne suffit pas pour créer une ancienne clé? –

+0

Non. Vous ne pouvez pas recréer un fichier de clés une fois créé. Vous devrez commencer frais. –

+0

Merci Jon, j'espérais que Xamarin utilise pour signer le certificat avec des valeurs qui ne dépendent que du PC afin de conserver la clé plutôt que d'en créer une nouvelle pour chaque installation sur la même machine. –