web-dev-qa-db-fra.com

Puis-je utiliser le même fichier de clés pour signer deux applications différentes?

Je dois télécharger une nouvelle application, c'est juste le design qui est un peu différent. Hier, j'ai généré le fichier de clés pour signer l'application. Puis-je utiliser la même chose?

69
Raluca Lucaci

Vous pouvez utiliser ce keystore pour n'importe quel nombre d'applications.

Pas besoin de générer un nouveau fichier de clés.

77
Chirag

La documentation officielle nous dit:

En général, la stratégie recommandée pour tous les développeurs est de signer toutes vos applications avec le même certificat, tout au long de la durée de vie prévue de vos applications. Il y a plusieurs raisons pour lesquelles vous devriez le faire ...

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

Alors oui, essayez de signer toutes vos candidatures avec le même certificat.

37
ol_v_er

Je vais jusqu'à présent opposer un argument à la réponse consensuelle.

Je conviens que pour la plupart des auteurs d'applications, la plupart du temps, le partage du même keystore/certificat/mot de passe entre vos applications fonctionnera correctement. L'essentiel est d'utiliser " le même certificat tout au long de la durée de vie prévue de vos applications " pour que l'application puisse se mettre à niveau.

Mais je peux penser à une très bonne raison d'avoir des magasins de clés distincts pour des applications ou des familles d'applications distinctes. Si vous pensez que vous voudrez peut-être vendre une application à quelqu'un d'autre pour qu'il la publie en tant que mise à niveau de l'original, vous devrez partager votre seul fichier de clés et votre mot de passe avec eux pour le faire. Ce n'est probablement pas un gros problème, mais un peu d'inquiétude pour vous et, peut-être, un problème de diligence raisonnable pour un acheteur suffisamment gros.

De plus, je ne lis vraiment pas la même ligne dans la documentation de la même manière que le fait @ol_v_er. Je pense que la ligne actuelle:

Vous devez signer toutes vos applications avec le même certificat pendant toute la durée de vie prévue de vos applications.

(notez l'absence de virgule dans la version actuelle) souligne simplement que la recommandation `` à vie '' s'applique à toutes les applications, et ne vous oblige pas en fait à utiliser le même certificat pour toutes vos applications.

36
Anne Gunn

Je veux ajouter quelques éclaircissements ici, parce que cette question et les réponses fournies me portent à confusion. Il est essentiel de comprendre ce qu'est réellement un magasin de clés.

Un magasin de clés est juste un moyen de stocker en toute sécurité la paire de clés publique/privée qui est utilisée pour signer vos Android apks. Alors oui, vous pouvez utiliser la même chose keystore pour signer plusieurs apks, sans problème. Vous pouvez également utiliser le même alias (chaque alias est un certificat) pour signer plusieurs apks, et cela fonctionnera. Cela a cependant des implications en termes de sécurité. Si votre seul alias est compromis, toutes vos applications auront été compromises.

Cependant, si vous avez l'intention de vendre les droits de vos applications un jour, l'utilisation du même alias pour toutes vos applications peut ne pas être une bonne idée. Cependant, utiliser le même magasin de clés, à condition d'utiliser un alias différent pour chaque apk, n'est pas nécessairement une mauvaise option. Je suis sûr qu'il existe un moyen de déplacer un certificat d'un magasin de clés à un autre, afin que vous puissiez donner en toute sécurité les clés nécessaires pour ce certificat uniquement à votre acheteur.

Pour être très clair, un magasin de clés est juste cela, un support de stockage pour les clés. Il ne joue aucun rôle réel dans le processus de signature d'un apk, mais ne sert qu'à stocker les clés qui sont réellement utilisées pour signer l'apk.

Les références:

Comprendre le magasin de clés, les certificats et l'alias

https://www.digitalocean.com/community/tutorials/Java-keytool-essentials-working-with-Java-keystores

15
Anthony Stivers

Bien sûr! Vous pouvez utiliser le même fichier de clés autant de fois que vous le souhaitez. Il est toujours préférable d'utiliser le même fichier de clés pour toutes les applications que vous développez. Cela vous aidera si vous souhaitez mettre à jour ou modifier l'application. À ce moment, vous devez signer votre demande avec la même clé.

4
Rohit

Je signe toutes mes applications en utilisant le même certificat (keystore). Cela donne un avantage si je change d'avis et que mes applications partagent leurs données.

Comme vous le savez peut-être Android identifie chaque application avec un UID. Si toutes vos applications sont signées par le même certificat, vous pouvez demander Android pour attribuer le même identifiant d'utilisateur plus d'une application et les faire tourner à tour de rôle en un seul processus et partager les données.

De Android doc Android: sharedUserId

Android: sharedUserId

Nom d'un ID utilisateur Linux qui sera partagé avec d'autres applications. Par défaut, Android attribue à chaque application son propre ID utilisateur unique. Cependant, si cet attribut est défini sur la même valeur pour deux applications ou plus, elles partageront toutes le même ID - à condition qu'elles sont également signés par le même certificat. Une application avec le même ID utilisateur peut accéder aux données de l'autre et, si vous le souhaitez, s'exécuter dans le même processus.

1
sujith