Ich entwickle Android-Apps unter Intellij und Gradle. und auf folgende Weise eine Keystore-Datei erstellen:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
dann die Keystore-Datei in build.gradle verwendet:
signingConfigs {
robert {
storePassword 'robert'
storeFile file('/Users/bournewang/Documents/Project/Android.keystore')
keyPassword 'robert'
keyAlias 'mike'
}
}
beim letzten Versuch, eine signierte APK-Datei zu erstellen: ./gradlew assembleRelease
es gibt den Fehler:
Ausführung fehlgeschlagen für Task ': Myexample: packageRelease'.
Schlüssel konnte nicht aus dem Keystore gelesen werden
Überprüfen Sie zunächst Ihre Keystore-Datei. In Ihrem Beispiel erstellen Sie eine Datei mit dem Namen my-release-key.keystore. Wenn es korrekt ist und wirklich im Ordner Users/bournewang/Documents/Project
check Alias vorhanden ist, ist es in Ihrem Beispiel-alias alias_name , aber Sie haben in config den Alias angegeben mike
Um herauszufinden, was falsch ist, können Sie den Befehl signingReport
von gradle verwenden.
Auf dem mac:
./gradlew signingReport
Unter Windows:
gradlew signingReport
Wahrscheinlich existiert Ihr Schlüsselalias nicht für Ihre Schlüsselspeicherdatei.
Diese Antwort sollte Ihr Signaturproblem beheben;)
Das Entfernen von double-quotes
hat mein Problem gelöst. Jetzt heißt es:
DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
In meinem Fall wurde beim Kopieren des Textes aus einer anderen Quelle irgendwie der Platz am Ende des Zwischenablage-Eintrags eingefügt. Auf diese Weise hatte das Schlüsselkennwort am Ende ein Leerzeichen.
Es könnte sich um einen beliebigen Parameter handeln, nicht nur um den Dateinamen oder den Aliasnamen - für mich war es das Schlüsselkennwort.
Wenn jemand die Signierkonfigurationen nicht verwendet und versucht, den Befehl Cordova Release durch Eingabe aller Parameter in der Befehlszeile zu testen, müssen Sie möglicherweise Ihre Kennwörter in einfache Anführungszeichen setzen, wenn Ihr Kennwort Sonderzeichen enthält
cordova run Android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'