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
私は以下を試しました
間違ったパスワードを入力して、ファイルが見つかるかどうかを確認します。ファイルが見つかると想定して、正しいパスを指定して次のエラーを表示します。
ストア ""からキーを読み取れませんでした:キーストアが改ざんされたか、パスワードが正しくありませんでした
入力を感謝します!
私の問題は、ランダムにkeyAlias
を入力したことです。 IDE(IntlliJ Idea and Android Studio:Build menu-> generate signed APK)を使用してAPKに署名しようとすると、楕円ボタン(...
)キーエイリアスを入力するためのテキストボックスの横に、以前にキーストアに設定した正しいキーエイリアスが見つかりました。キーストアにアドホックなランダムパスワードとkeyAliasを入力していないことを再確認してください。これらは、作成時にキーストアに設定したパスワードとキーエイリアスと同一である必要があります。
パスワードまたはキーエイリアスのいずれかを忘れた場合、これらがないとキーストアを読み取ることができないため、新しいキーストアを作成する必要があります。将来必要になるので、これら2つのプロパティをLastpassなどのパスワードマネージャーに保存(およびキーストアファイルを添付)することをお勧めします。
以下に示すように、エイリアスとパスワードで二重引用符を使用していました
storePassword="spass"
keyAlias="kalias"
keyPassword="kpass"
二重引用符を削除すると問題が解決しました
storePassword=spass
keyAlias=kalias
keyPassword=kpass
私の問題は、gradle.propertiesファイルに余分な空白があることでした。したがって、次のようなエントリがある場合:
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\s)(\r\n)
すべてのエントリに先行空白がないことを確認します。
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\r\n)
この問題は完全には修正していませんが、「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プロパティファイルに設定します。
お役に立てば幸いです。