Выпуск подписи Android Release Build "Не удалось прочитать ключ из хранилища ключей"
Я использую gradle (assembleRelease), чтобы сгенерировать apk release.
Я сохранил файл хранилища ключей в файле project/app/filename.keystore(внутри приложения)
Я указал подробности, связанные с входом в gradle.properties file
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
Я пробовал следовать
-
Предоставление неправильного пароля, чтобы узнать, можно ли найти файл. Дает следующую ошибку с правильным путем, так как я предполагаю, что файл может быть найден.
Не удалось прочитать ключ из хранилища "": был поврежден Keystore или неверный пароль
Оцените свой ввод!
Ответы
Ответ 1
Моя проблема заключалась в том, что я ввел случайный keyAlias
. При попытке подписать apk с помощью IDE (IntlliJ Idea и Android Studio: Build menu → сгенерировать подписанный APK), нажав кнопку эллипса (...
) рядом с текстовым полем для ввода ключевого псевдонима, я нашел правильный псевдоним ключа что я раньше поставил для своего хранилища ключей. Дважды проверьте, что вы не вводите произвольный случайный пароль и keyAlias для своего хранилища ключей, поскольку они должны быть идентичны паролю и ключевому псевдониму, который вы задали для своего хранилища ключей при его создании.
Если вы забыли пароль или ключевой псевдоним, я боюсь, что вам нужно создать новое хранилище ключей, так как вы не сможете прочитать свое хранилище ключей без них. Я предлагаю сохранить эти два свойства (и прикреплять файл хранилища ключей) в менеджере паролей, таком как Lastpass, так как вам они понадобятся в будущем.
Ответ 2
Моя проблема заключалась в том, что у меня было лишнее пространство в файле gradle.properties. Итак, если у вас есть записи вроде этого:
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\s)(\r\n)
Убедитесь, что для всех записей нет начальных пробелов:
MYAPP_RELEASE_KEY_ALIAS=my-key-alias(\r\n)
Ответ 3
Я использовал двойные кавычки с псевдонимом и паролями, как показано ниже
storePassword="spass"
keyAlias="kalias"
keyPassword="kpass"
Удаление двойных кавычек решило мою проблему
storePassword=spass
keyAlias=kalias
keyPassword=kpass
Ответ 4
Я не полностью исправил эту проблему, но я думаю, что она связана со следующими записями в "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 ( "путь/в/ваш/подпись/ключ/ApkSigning.jks" ) ...
}
И установите соответствующие пароли и псевдонимы в файле свойств gradle.
Надеюсь, что это поможет.