Подтвердить что ты не робот

Выпуск подписи 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 или неверный пароль

Оцените свой ввод!

4b9b3361

Ответ 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.

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