Développement Android: Keytool, la création d'un fichier de clés?
Je suis en train de préparer mon application pour le marché de google, mais il s'est avéré beaucoup plus difficile que prévu. Je n'arrive pas à saisir le concept de la signature de l'application, mais pour être plus précis, mon problème est que j'ai installé l'utilitaire keytool plugin pour eclipse, mais lorsque je veux créer un certificat, il me demande de sélectionner un fichier de clés (Entrez le nom de fichier et un fichier de mot de passe), je ne comprends pas ce que je suis censé entrer en tant que fichier, car il veut vraiment que moi pour sélectionner le fichier à l'aide de parcourir et comment dois-je procéder à l'exportation du fichier, Google n'a malheureusement pas venir avec une très bonne ou une réponse claire
OriginalL'auteur Oliver | 2013-11-03
Vous devez vous connecter pour publier un commentaire.
Vous devez fournir l'emplacement et le nom de votre nouveau fichier de magasin de clés dans le cas où vous êtes en créer un nouveau. Sinon, vous pouvez choisir "utiliser un fichier de clés existant" et naviguez jusqu'au fichier de clés existant emplacement du fichier.
Modifier: j'ai pensé que je pourrais fournir élaborer réponse. Espère que cette info vous sera utile.
Ce qui est la signature et pourquoi elle est nécessaire.
L'apk mécanisme de signature utilisé par android est un exemple l'utilisation de la signature numérique appliquée en bytecode et les ressources de l'application pour s'assurer :
Pour mieux comprendre signature numérique je vous suggère de parcourir la cryptographie à clé publique.
Comment cela fonctionne.
Android utilise la même norme JDK outils utilisés pour la signature/vérification de la norme java apps:
private key
, et vérifie les données avec certificat (c'est à dire la clé publique lié à votre identité)keystore
. Ces clés sont nécessaires pourjarsigner
.Après la signature de votre application manuellement avec
jarsigner
ou à l'exportation de demande signé à l'aide de votre IDE (qui utilisekeytool
etjarsigner
sous le capot de toute façon), vous pouvez alors localiser la signature liés à des fichiers placés dansMETA-INF
répertoire de votre signature .apk archive :SHA
hachages de votre application, les composants et lesVous pouvez lire plus de détails sur la façon de chanter des œuvres ici.
Comment bien signer la demande de libération.
Cet article très bien décrit les étapes que vous devez suivre.
Note: Veuillez considérer important de pré-libération étapes avant de procéder à la signature : journaux/critique des littéraux de chaîne de suppression, de dissimulation avec proguard, etc.
Je donnerai ci-dessous quelques points clés pour le processus :
Générer votre clé privée et le mettre en java
keystore
.Cela peut nécessiter la création de
keystore
d'abord si vous n'en avez pas. Lors de la création dekeystore
vous avez besoin pour créerKeystore password
, qui est utilisé pour assurer l'intégrité dekeystore
de données (c'est à dire, vous serez averti que votre fichier est altéré après quelqu'un - ne-vous -a ajouté un nouveau certificat pour elle). Pratiquement, ce mot de passe n'est pas super indispensable si vous gardez votrekeystore
fichier en toute sécurité. Vous pouvez vous en sortir si vous oubliez un jour de l'.Lors de la génération de
private key
, il vous sera également demandé de créerPrivateKey password
qui sera utilisé pour crypter votre clé privée à l'intérieur du fichier de clés. C'est très important mot de passe que vous devez garder qu'il s'assure deLorsque vous générez votre clé privée dans Eclipse, il vous sera également demandé de fournir des informations d'identité qui est utilisé pour créer votre certificat auto-signé.
Comme la prochaine étape de votre
private key
d'keystore
fichier sera utilisé pour signer le formulaire de demande et votre.apk
sera mis à jour avec la signature des fichiers liés expliqué ci-dessus.Certains terminologie importante :
Keystore est tout simplement un fichier binaire unique garder la liste de vos clés privées /certificats dans un format spécifique. Il est accessibles par programme à l'aide de l'API fournie par KeyStore.java. Votre fichier de clés peut contenir plusieurs clés privées des entrées, chacun étant identifié par son
alias
.Dans la majorité des cas, votre
keystore
aura unique de la clé privée avec le seul certificat auto-signé correspondant à cette clé privée.Mot de passe du fichier de clés est utilisé pour vérifier l'intégrité du fichier de stockage des clés de contenu.
Si vous perdez le mot de passe, mais vous avez toujours le mot de passe de clé privée stockée à l'intérieur, vous pouvez "clone" de votre fichier de clés et de fournir de nouveaux mot de passe du fichier de clés par l'exécution de la cmd suivantes:
fournir nouveau mot de passe, et laisser l'ancien fichier de mot de passe vide, vous obtenez seulement un avertissement. Vous pouvez ensuite utiliser votre nouveau fichier de clés et de se débarrasser de l'ancien.
Il y a d'autres façons que vous pouvez récupérer votre clé privée sans utiliser de mot de passe du fichier de clés.
Clé privée mot de passe - protège(par chiffrement)
private key
à l'intérieur dekeystore
. Il est extrêmement important car il vous permet d'accéder à votre clé privée, entre autres choses, de signer les mises à jour pour votre application. Il est généralement très difficile de le récupérer.Auto-signé ceritificate - très simple certificat de liaison de votre identité(nom/organisation/e-mail) de votre clé publique. Ce certificat est ajouté à
.apk
fichier pendant l'opération de signature et sera utilisé sur le périphérique de l'utilisateur de vérifier.apk
avant l'installation.Vous pouvez afficher les détails de l'erreur, s'il vous plaît ?
umm le journal d'erreur est extrêmement long, quelles parties avez-vous besoin?
les erreurs ne font pas sens, il est dit: "Un expcetion produite lors de la notification de la partie auditeurs" et "les Problèmes survenus lors de l'appel de code provenant de plug-in org.eclipse.e4.l'interface utilisateur.workbench" , mais mon application fonctionne très bien et a 0 erreurs
hm. Avez-vous essayez de vous connecter à votre application avec eclipse standard de flux de travail : developer.android.com/tools/publishing/... ? Normalement, il devrait être très facile et va travailler pour vous puisque vous compilez le code source vous-même
OriginalL'auteur kiruwka