Ответ 1
"Построить" → "Очистить проект", затем снова "Сгенерировать подписанный..." - у меня сработало нормально
Вот шаги, которые я предпринимаю в указанном порядке, чтобы обновить опубликованное приложение после исправления ошибки через Android studio:
Исправьте ошибку.
Изменен на versionCode 2 и versionName "1.1" в build.gradle (Модуль)
Создать подписанный пакет
Путь к хранилищу ключей: C:\Folder\Folder\Android\MyApp.jks
Оба пароля верны
Псевдоним ключа: key0 (по умолчанию, как в первый раз)
Но тогда возникает эта ошибка:
Cause: jarsigner.exefailed with exit code 1 :
jarsigner: key associated with key0 not a private key
Что может быть причиной этого?
"Построить" → "Очистить проект", затем снова "Сгенерировать подписанный..." - у меня сработало нормально
Ну, я также столкнулся с этой проблемой после обновления до Android Studio 3.3, и я решил в 3 шага. Но сначала убедитесь, что вы сделали резервную копию всего проекта.
Это прошло успешно после 2 попыток. Честно говоря, я сделал последний шаг дважды, восстановив файлы из резервной копии. Как удаление этих папок я испортил 1 раз.
Кажется, вы вводите неправильный пароль, если
"Строй"> "Чистый проект"
не решил твою проблему.
Попробуйте ссылку на ссылку: нажмите здесь
Для тех, кому не повезло с "Чистым проектом", попробуйте изменить пароль ключа с помощью следующей команды в Android Studio Terminal.
keytool -keypasswd -alias yourAliasName -keystore pathToYourKeystoreFile
После этого вам будет предложено ввести пароль хранилища ключей и, если он верен, можете изменить пароль ключа.
У меня была та же проблема, у меня есть оба пароля, написанные на листе бумаги, и внезапно (обновление Android Studio?) Пароль ключа больше не работал. Keystore работал, мог выбрать псевдоним, но при создании подписанного приложения та же ошибка, что и у вас.
Попробовав все решения здесь, он либо не работал, либо был слишком сложным, чтобы даже заставить его работать.
В конце концов, просто перезагрузка моего компьютера - вот что помогло.
Специальные символы в вашем пароле? Читайте на
(Не уверен на 100%, но) В моем ключевом пароле были специальные символы, и я решил удалить все двойные кавычки (") только потому, что он мог быть виновником, и это сработало.
Для тех, кто придет на этот вопрос, создать кандидат на выпуск приложения React Native для Play Store или в случае сборки без Android Studio.
а) Очистка проекта особенно полезна, если в вашей продакшен версии были предыдущие ошибки:
cd android
./gradlew clean
b) Проверьте, правильно ли было создано ваше хранилище ключей, с действующим, экспортируемым сертификатом, встроенным в:
keytool -export -alias your-keystore-alias -file mycertificate.crt -keystore /path/to/keystore
Вам будет предложено ввести пароль хранилища ключей, который вы использовали при создании хранилища ключей. Если вы успешно создали файл mycertificate.crt
, с вашим хранилищем ключей все в порядке. Это действительно.
c) Ошибка not a private key
также может появиться, если вы явно не указали пароль ключа и просто пароль хранилища (как показано ниже) в свойствах сборки своего выпуска gdle:
MYAPP_UPLOAD_STORE_FILE=my-app.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-app
MYAPP_UPLOAD_STORE_PASSWORD=keystorePassword
MYAPP_UPLOAD_KEY_PASSWORD=
При генерации сертификата подписи с помощью keytool
есть необязательный аргумент для генерации отдельного пароля сертификата, помимо пароля хранилища ключей. Однако если пароль сертификата/ключа не указан, он наследует пароль хранилища ключей. Таким образом, в этом случае рабочий набор свойств будет:
MYAPP_UPLOAD_STORE_FILE=my-app.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-app
MYAPP_UPLOAD_STORE_PASSWORD=keystorePassword
MYAPP_UPLOAD_KEY_PASSWORD=keystorePassword