Vous avez un certificat pour signer les fichiers apk de version non signée Android, J'ai donc importé le cer à l'aide de la commande:
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keystore my_keystore.keystore
Mais lors de la signature de l'application avec Android Studio, une erreur est générée:
Error:Execution failed for task ':packageDebug'.
> com.Android.ide.common.signing.KeytoolException: Failed to read key alias_name from store "C:\Users\username\my_keystore.keystore": trusted certificate entries are not password-protected
Mes déductions disaient que parce que les clés ne sont pas protégées par un mot de passe, j'ai donc essayé à nouveau de définir le mot de passe pour les clés avec
keytool -import -alias alias_name -file cer_name.cer -storepass changeit -keypass changeit -keystore my_keystore.keystore
Mais l'erreur persiste toujours.
J'ai aussi essayé avec une procédure manuelle avec jarsigner:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my_keystore.keystore unsigned-release.apk alias_name
Vous avez une erreur:
jarsigner: Certificate chain not found for: alias_name. alias_name must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
S'il vous plaît, aidez-moi, je suis incapable d'obtenir un post pertinent sur cette erreur pour les signatures apk Android
Je recommande fortement d’obtenir Keystore Explorer . Ce programme m'a sauvé la vie plus d'une fois alors que je rencontrais des problèmes de stockage de clés et de certificats. C'est gratuit et open source, et une interface graphique facile à naviguer. Il peut créer de nouvelles paires de clés et importer des paires de clés existantes dans votre magasin de clés. J'ai commencé à l'utiliser il y a environ 3 ans et il se trouve toujours dans mon dossier pour les outils de développement.
Les fichiers * .cer ne contiennent généralement que des certificats, pas la clé privée nécessaire pour signer un APK.
Répertoriez le contenu du magasin de clés:
keytool -list -v -keystore my_keystore.keystore
Et recherchez la ligne Entry type:
(pour l'alias correspondant). La valeur doit être PrivateKeyEntry
, pas trustedCertEntry
Si vous utilisez Android studio, il existe une solution très simple pour vous connecter apk, suivez les étapes ci-dessous. Allez dans Menu Android -> Rechercher la construction -> Générer l'APK signé ... après que cette nouvelle fenêtre est apparue -> cliquez sur Create new ... button. Ensuite, entrez les détails comme indiqué ci-dessous et cliquez sur OK -> Suivant. -> Choisissez le chemin de stockage de clé dans lequel vous souhaitez stocker votre fichier .jks pour une utilisation ultérieure -> définissez le mot de passe souhaité -> set Nom d'alias -> mot de passe - > Complétez les détails du certificat -> cliquez sur suivant
la fenêtre suivante apparaîtra comme ci-dessous la capture d'écran
Choisissez le répertoire que vous voulez signer .apk sera stocké (sinon, il générera dans le dossier app -> release) -> choisir la version de la signature -> cliquez sur terminer
Attendez que l'APK ait été généré avec succès