Ошибка подписания APK: не удалось прочитать ключ из хранилища ключей
Я разрабатываю приложение для Android под intellij и gradle. и используя следующий способ генерации файла хранилища ключей:
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
затем использовал файл хранилища ключей в файле build.gradle:
signingConfigs {
robert {
storePassword 'robert'
storeFile file('/Users/bournewang/Documents/Project/android.keystore')
keyPassword 'robert'
keyAlias 'mike'
}
}
когда, наконец, пытается сгенерировать подписанный файл apk:./gradlew assembleRelease
он дает ошибку:
Выполнение не выполнено для задачи ': Myexample: packageRelease'.
Не удалось прочитать ключ из хранилища ключей
Ответы
Ответ 1
Сначала проверьте файл хранилища ключей, в примере, где вы создаете файл с именем my-release-key.keystore. Если его правильный и действительно присутствует в папке Users/bournewang/Documents/Project
, проверьте псевдоним, в вашем примере это -alias alias_name, но в конфигурации вы указали псевдоним mike
Ответ 2
Чтобы узнать, что вы можете использовать, используйте команду gradle signingReport
.
На mac:
./gradlew signingReport
В Windows:
gradlew signingReport
Ответ 3
Скорее всего, ваш псевдоним ключа не существует для вашего файла хранилища ключей.
Этот ответ должен исправить вашу проблему с подпиской;)
Ответ 4
Удаление double-quotes
решило мою проблему, теперь его:
DEBUG_STORE_PASSWORD=androiddebug
DEBUG_KEY_ALIAS=androiddebug
DEBUG_KEY_PASSWORD=androiddebug
Ответ 5
В моем случае, копируя текст из другого источника, он каким-то образом включал пространство в конце записи в буфер обмена. Таким образом, у ключевого пароля было место в конце.
Ответ 6
Это может быть любой из параметров, а не только имя файла или псевдоним - для меня это был пароль ключа.
Ответ 7
Если кто-то не использует конфигурацию подписи и пытается проверить команду Cordova Release, введя все параметры в командной строке, вам может потребоваться заключить пароли в одинарные кавычки, если в вашем пароле есть специальные символы
cordova run android --release -- --keystore=../my-release-key.keystore --storePassword='password' --alias=alias_name --password='password'