web-dev-qa-db-de.com

APK-Signaturfehler: Fehler beim Lesen des Schlüssels aus dem Keystore

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

54
Jacky

Ü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

59
cooperok

Um herauszufinden, was falsch ist, können Sie den Befehl signingReport von gradle verwenden.

Auf dem mac:

./gradlew signingReport

Unter Windows:

gradlew signingReport
49
Tom Susel

Wahrscheinlich existiert Ihr Schlüsselalias nicht für Ihre Schlüsselspeicherdatei.

Diese Antwort sollte Ihr Signaturproblem beheben;)

8
ptitvinou

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
2
fincode

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.

2
Stjepan Golemac

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.

0
A-S

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'
0
Mohamed Azher