Je développe une application Android sous intellij et gradle. et en utilisant le moyen suivant pour générer un fichier de magasin de clés:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
puis utilisé le fichier de clés dans build.gradle:
signingConfigs {
robert {
storePassword 'robert'
storeFile file('/Users/bournewang/Documents/Project/Android.keystore')
keyPassword 'robert'
keyAlias 'mike'
}
}
pour finalement générer un fichier apk signé: ./gradlew assembleRelease
cela donne l'erreur:
L'exécution a échoué pour la tâche ': Myexample: packageRelease'.
Impossible de lire la clé du magasin de clés
Vérifiez tout d’abord votre fichier de clés. Dans cet exemple, vous créez un fichier portant le nom my-release-key.keystore. Si c'est correct et vraiment présent dans le dossier Users/bournewang/Documents/Project
alias check, dans votre exemple, il s'agit de -alias alias_name , mais dans la configuration vous avez spécifié alias mike
Pour savoir ce qui ne va pas, vous pouvez utiliser la commande signingReport
de gradle.
Sur mac:
./gradlew signingReport
Sous Windows:
gradlew signingReport
Il est fort probable que votre alias de clé n'existe pas pour votre fichier de magasin de clés.
Cette réponse devrait résoudre votre problème de signature;)
La suppression de double-quotes
a résolu mon problème, maintenant sa:
DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
Dans mon cas, lors de la copie du texte depuis une autre source, il incluait en quelque sorte l'espace à la fin de l'entrée dans le presse-papier. De cette façon, le mot de passe de la clé avait un espace à la fin.
Cela pourrait être n'importe quel paramètre, pas seulement le nom de fichier ou l'alias - pour moi, c'était le mot de passe clé.
Si vous n'utilisez pas les configurations de signature et essayez de tester la commande Cordova Release en tapant tous les paramètres en ligne de commande, vous devrez peut-être entourer vos mots de passe de guillemets simples si votre mot de passe contient des caractères spéciaux.
cordova run Android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'