J'utilise gradle (assembleRelease) pour générer la version apk.
J'ai sauvegardé le fichier de clés dans project/app/filename.keystore (dans l'application)
J'ai spécifié des détails relatifs à la connexion au fichier gradle.properties
RELEASE_STORE_FILE=filename.keystore
RELEASE_STORE_PASSWORD=****
RELEASE_KEY_ALIAS=alias
RELEASE_KEY_PASSWORD=****
Mon fichier build.gradle contient les éléments suivants liés à la signature
signingConfigs {
release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
J'ai spécifié des configurations de signature dans le même fichier gradle que ci-dessous
buildTypes {
release {
signingConfig signingConfigs.release
}
}
Cependant, quand j'essaye de créer la version release, je continue à avoir l'erreur suivante
Error:Execution failed for task ':app:package<flavor>Release'.
> Failed to read key from keystore
J'ai essayé de suivre
Donner un mot de passe incorrect pour voir si le fichier peut être trouvé. Donne l'erreur suivante avec le chemin correct car je suppose que le fichier peut être trouvé.
Impossible de lire la clé du magasin "": le magasin de clés a été falsifié ou le mot de passe est incorrect
Appréciez votre contribution!
Mon problème était que j'avais entré une keyAlias
aléatoire. En essayant de signer l'apk en utilisant le IDE (IntlliJ Idea et Android Studio: menu Construire -> générer un APK signé), en cliquant sur le bouton en forme d'ellipse (...
) situé en regard du champ de saisie du alias de clé que j'avais précédemment défini pour mon magasin de clés. Vérifiez bien que vous ne saisissez pas un mot de passe aléatoire ad-hoc ni un keyAlias pour votre magasin de clés, car ils doivent être identiques au mot de passe et à l'alias de clé que vous avez définis pour votre magasin de clés lors de sa création.
Si vous avez oublié le mot de passe ou l'alias de clé, j'ai bien peur que vous deviez créer un nouveau magasin de clés, car vous ne pouvez pas lire votre magasin de clés sans ceux-ci. Je suggère de sauvegarder ces deux propriétés (et de joindre votre fichier de magasin de clés) dans un gestionnaire de mots de passe comme Lastpass, car vous en aurez besoin à l'avenir.
Mon problème était que j'avais un espace supplémentaire dans le fichier gradle.properties. Donc, si vous avez des entrées comme celle-ci:
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\s)(\r\n)
Assurez-vous qu'il n'y a pas d'espaces de début pour toutes les entrées:
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\r\n)
J'utilisais des guillemets avec alias et mots de passe, comme indiqué ci-dessous
storePassword="spass"
keyAlias="kalias"
keyPassword="kpass"
Supprimer les guillemets a résolu mon problème
storePassword=spass
keyAlias=kalias
keyPassword=kpass
Je n'ai pas complètement résolu ce problème, mais je pense qu'il est lié aux entrées suivantes dans 'Telegram\TMessagesProj\build.gradle':
signingConfigs {
debug {
storeFile file("config/release.keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
release {
storeFile file("config/release.keystore")
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
Notez que la configuration DEBUG est définie sur nous comme un 'release.keystore'.
Les mots de passe et les alias sont stockés dans 'Telegram\gradle.properties' et j'ai réussi à les remplacer par ceux que j'utilise lors de la signature d'APK et en modifiant la ligne de débogage pour qu'elle pointe vers votre propre clé de signature (créée via Android Studio).
Par exemple. Changer la ligne à
déboguer { Fichier storeFile ("chemin/vers/votre/signature/clé/ApkSigning.jks") ...}
Et définissez les mots de passe et les alias appropriés dans le fichier de propriétés Gradle.
J'espère que cela pourra aider.