Выпуск подписи Android Release Build «Не удалось прочитать ключ из хранилища ключей»

Я использую gradle (assembleRelease) для создания apk release.

Я сохранил файл хранилища ключей в файле 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 

Я пробовал следовать

  • Предоставление неправильного пароля, чтобы увидеть, можно ли найти файл. Дает следующую ошибку с правильным путем, так как я предполагаю, что файл можно найти.

    Не удалось прочитать ключ из хранилища "": Keystore был изменен или пароль был неверен

Цените свой вклад!

Solutions Collecting From Web of "Выпуск подписи Android Release Build «Не удалось прочитать ключ из хранилища ключей»"

Моя проблема заключалась в том, что я ввел случайный keyAlias . При попытке подписать apk с помощью IDE (IntlliJ Idea и Android Studio: Build menu -> сгенерировать подписанный APK), нажав кнопку эллипса ( ... ) рядом с текстовым полем для ввода ключевого псевдонима, я нашел правильный псевдоним ключа Что я раньше поставил для своего хранилища ключей. Дважды проверьте, что вы не вводите произвольный случайный пароль и keyAlias ​​для своего хранилища ключей, поскольку они должны быть идентичны паролю и ключевому псевдониму, который вы задали для своего хранилища ключей при его создании.

Если вы забыли пароль или ключевой псевдоним, я боюсь, что вам нужно создать новое хранилище ключей, так как вы не можете прочитать свое хранилище ключей без них. Я предлагаю сохранить эти два свойства (и прикреплять файл хранилища ключей) в менеджере паролей, таком как Lastpass, по мере необходимости в будущем.

Моя проблема заключалась в том, что у меня было лишнее пространство в файле gradle.properties. Поэтому, если у вас есть такие записи:

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

Убедитесь, что для всех записей нет начальных пробелов:

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

Я использовал двойные кавычки с псевдонимом и паролями, как показано ниже

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

Удаление двойных кавычек решило мою проблему

 storePassword=spass keyAlias=kalias keyPassword=kpass 

Я не полностью исправил эту проблему, но я думаю, что она связана со следующими записями в «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 ("путь / to / your / подпись / ключ / ApkSigning.jks") …}

И установите соответствующие пароли и псевдонимы в файле свойств градиента.

Надеюсь, это поможет.