web-dev-qa-db-ja.com

APK署名エラー:キーストアからキーを読み取れませんでした

私はAndroidアプリをintellijとgradleで開発しています。次の方法を使用してキーストアファイルを生成します。

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

次に、build.gradleのキーストアファイルを使用しました。

signingConfigs {
    robert {
        storePassword 'robert'
        storeFile file('/Users/bournewang/Documents/Project/Android.keystore')
        keyPassword 'robert'
        keyAlias 'mike'
    }
}

最終的に署名済みapkファイルを生成しようとしたとき:./gradlew assembleRelease

エラーが発生します:

タスク ':Myexample:packageRelease'の実行に失敗しました。

キーストアからキーを読み取れませんでした

62
Jacky

最初にキーストアファイルを確認します。例では、my-release-key.keystoreという名前のファイルを作成します。正しく、フォルダUsers/bournewang/Documents/Projectに実際に存在する場合、エイリアスをチェックします。例では-alias alias_nameですが、configではエイリアスmikeを指定しました

60
cooperok

何が間違っているかを知るために、gradleのsigningReportコマンドを使用できます。

Macの場合:

./gradlew signingReport

Windowsの場合:

gradlew signingReport
57
Tom Susel

キーストアファイルのキーエイリアスが存在しない可能性があります。

これは answer 署名の問題を修正する必要があります;)

8
ptitvinou

double-quotesを削除することで問題が解決しました。

DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
2
fincode

私の場合、他のソースからテキストをコピーしているときに、クリップボードエントリの最後にスペースが含まれていました。こうすることで、キーパスワードの末尾にスペースができました。

2
Stjepan Golemac

ファイル名やエイリアスだけでなく、任意のパラメータを使用できます。私にとっては、キーパスワードです。

0
A-S

署名設定を使用せず、コマンドラインですべてのパラメーターを入力してCordova Releaseコマンドをテストする場合、パスワードに特殊文字が含まれている場合は、パスワードを一重引用符で囲む必要があります。

cordova run Android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'
0
Mohamed Azher