2017-10-12 4 views
0

Lorsque vous essayez de télécharger un fichier APK sur Google Play via le processus d'archivage/distribution Visual Studio, il échoue car le certificat a expiré. J'ai vérifié cela en utilisant keytool -list et vérifié qu'il est effectivement expiré. Comment mettre à jour la validité du certificat sur mon fichier de clés existant? J'ai essayé d'importer mon keystore existant dans le processus d'archivage dans VS où il se plaint d'expirer trop tôt et ne télécharge pas. J'ai essayé de créer un nouveau fichier de clés et de le télécharger dans mon application existante, mais j'ai reçu un message:L'APK a été signé avec un certificat qui expire trop tôt, comment mettre à jour la validité du fichier de clés pour l'application Android Xamarin existante?

"Vous avez importé un fichier APK signé avec un certificat différent de vos fichiers APK précédents. Vous devez utiliser le même certificat. Les APK sont signés avec le (s) certificat (s) avec les empreintes digitales: ... "

Je suppose que j'ai besoin de mettre à jour la validité en utilisant le keytool.exe en quelque sorte sur mon keystore lui-même. J'ai essayé cette instruction depuis la ligne de commande en espérant qu'elle serait mise à jour, mais elle se plaint que mon alias existe déjà:

keytool.exe -genkey -v -keystore monapp.keystore -alias myoriginalalias -keyalg RSA -keysize 2048 -validité 20000

Je l'ai essayé avec un nouveau nom d'alias, il demande un mot de passe pour, que je n'ai jamais configuré, ou retourne si même comme mot de passe keystore, et j'appuie sur enter. Ensuite, je reçois une erreur keytool: java.io.FileNotFoundException: myapp.keystore (Accès refusé).

Ai-je besoin de créer un alias avant la main avec un mot de passe? Si c'est le cas, comment? Cela fait un moment que je l'ai fait manuellement. Ou y a-t-il un autre outil que je devrais utiliser ou une autre option sur keytool? Je n'en vois pas pour mettre à jour les options de validité. J'ai l'impression que je me rapproche d'ici et que je suis vide à la recherche. Toute indication ici serait appréciée. Merci d'avance.

Fondamentalement, quel est le processus de mise à jour d'une validité de fichier de clés pour une application existante dans le Google Play Store? C'est possible?

+0

Malheureusement aucune façon. Vous devriez publier une nouvelle application avec une nouvelle clé et un appId. Vous pouvez ajouter une certaine logique dans votre ancienne application et demander à vos utilisateurs de passer de l'ancienne application à la nouvelle. –

+0

J'espérais que ce n'était pas la réponse, mais merci. Malheureusement, je ne peux pas mettre à jour l'ancienne application, car cela nécessiterait une mise à jour vers une application dont la validité est expirée et qui ne peut pas être téléchargée. Mais peut-être que je peux faire un peu de messagerie à travers mes fichiers de données qui sont externes. Merci pour l'info et l'idée. – user3810967

+0

https://stackoverflow.com/questions/20933987/android-developer-signing-key-expires –

Répondre

0

If you plan to support upgrades for an app, ensure that your app signing key has a validity period that exceeds the expected lifespan of that app. A validity period of 25 years or more is recommended. When your key's validity period expires, users will no longer be able to seamlessly upgrade to new versions of your app.

La seule chose que vous pouvez faire une fois que le certificat expire, est de nouveau pubish l'application avec une nouvelle application Id et nouveau certificat.

You should sign all of your APKs with the same certificate throughout the expected lifespan of your apps. There are several reasons why you should do so:

App upgrade: When the system is installing an update to an app, it compares the certificate(s) in the new version with those in the existing version. The system allows the update if the certificates match. If you sign the new version with a different certificate, you must assign a different package name to the app—in this case, the user installs the new version as a completely new app.

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