web-dev-qa-db-ja.com

署名の問題Androidリリースビルド "キーストアからキーを読み取れませんでした"

Gradle (assembleRelease)を使用してリリースAPKを生成しています。

Keystoreファイルをproject/app/filename.keystoreに保存しました(アプリケーション内)

Gradle.propertiesファイルへのサインインに関連する詳細を指定しました

RELEASE_STORE_FILE=filename.keystore
RELEASE_STORE_PASSWORD=****
RELEASE_KEY_ALIAS=alias
RELEASE_KEY_PASSWORD=****

私のbuild.gradleファイルには、署名に関連する次のものが含まれています

signingConfigs {
        release {

            storeFile file(RELEASE_STORE_FILE)
            storePassword RELEASE_STORE_PASSWORD
            keyAlias RELEASE_KEY_ALIAS
            keyPassword RELEASE_KEY_PASSWORD
        }
    }

以下と同じgradleファイルで署名設定を指定しました

 buildTypes {
    release {
        signingConfig signingConfigs.release
    }
 }

しかし、リリースビルドを作成しようとすると、次のエラーが発生し続けます

Error:Execution failed for task ':app:package<flavor>Release'.
> Failed to read key from keystore

私は以下を試しました

  • 間違ったパスワードを入力して、ファイルが見つかるかどうかを確認します。ファイルが見つかると想定して、正しいパスを指定して次のエラーを表示します。

    ストア ""からキーを読み取れませんでした:キーストアが改ざんされたか、パスワードが正しくありませんでした

入力を感謝します!

13
HasaniK

私の問題は、ランダムにkeyAliasを入力したことです。 IDE(IntlliJ Idea and Android Studio:Build menu-> generate signed APK)を使用してAPKに署名しようとすると、楕円ボタン(...)キーエイリアスを入力するためのテキストボックスの横に、以前にキーストアに設定した正しいキーエイリアスが見つかりました。キーストアにアドホックなランダムパスワードとkeyAliasを入力していないことを再確認してください。これらは、作成時にキーストアに設定したパスワードとキーエイリアスと同一である必要があります。

パスワードまたはキーエイリアスのいずれかを忘れた場合、これらがないとキーストアを読み取ることができないため、新しいキーストアを作成する必要があります。将来必要になるので、これら2つのプロパティをLastpassなどのパスワードマネージャーに保存(およびキーストアファイルを添付)することをお勧めします。

26

以下に示すように、エイリアスとパスワードで二重引用符を使用していました

storePassword="spass"
keyAlias="kalias"
keyPassword="kpass"

二重引用符を削除すると問題が解決しました

storePassword=spass
keyAlias=kalias
keyPassword=kpass
7
Vasudev

私の問題は、gradle.propertiesファイルに余分な空白があることでした。したがって、次のようなエントリがある場合:

MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\s)(\r\n)

すべてのエントリに先行空白がないことを確認します。

MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\r\n)
6
Alappin

この問題は完全には修正していませんが、「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
    }
}

DEBUG設定が「release.keystore」に設定されていることに注意してください。

パスワードとエイリアスは 'Telegram\gradle.properties'に保存されており、APKに署名するときに使用するものに変更し、デバッグ行を変更して独自の署名キー(Android Studio)。

例えば。行を次のように変更します

debug {storeFile file( "path/to/your/signing/key/ApkSigning.jks")...}

そして適切なパスワードとエイリアスをgradleプロパティファイルに設定します。

お役に立てば幸いです。

1
asnake