Я потерял свой файл .keystore?


87

Хорошо, ребята ... Короче говоря, я разрабатывал на компьютере, к которому у меня больше нет доступа. Мне удалось получить исходный код, но не файл .keystore, используемый для подписи и публикации моего приложения на рынке (с несколькими обновлениями). Неужели мне и моим бедным пользователям не повезло, если я когда-нибудь захочу обновиться?

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


14
Если бы был способ обойти это, это бы поставило под угрозу всю цель безопасности, которой она должна служить!
Санта,

Ответы:


79

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

Как правило, единственный совет, который существует в хранилищах ключей: "всегда создавайте резервные копии!"


1
Я столкнулся с этим, и мне пришлось переиздать новую версию моего приложения. С тех пор все мои ключи находятся в Dropbox.
Варун

После обновления до Android Studio 3.3 мое старое хранилище ключей больше не принимается во время подписания приложения. Отображается сообщение об ошибке «Невозможно восстановить ключ».
Яр

55

Теперь это возможно, не волнуйтесь, вот полные и последние шаги для сброса файла .JKS.

Я успешно отдыхаю свой КЛЮЧ

Шаг 1

Загрузите СЕРТИФИКАТ ЗАГРУЗКИ (имя файла - upload_cert.der ) из консоли Google Play Store.

скачать файл upload_cert.der

Шаг 2

Перейдите по этой ССЫЛКЕ https://support.google.com/googleplay/android-developer/contact/otherbugs и заполните форму заявки, указав действующий идентификатор электронной почты, и загрузите файл (upload_cert.der).

Заполните анкету

Шаг 3

Теперь вы получите электронное письмо от службы поддержки, и им не нужен ваш файл .JKS, но файл .PEM - это образец электронного письма.

введите описание изображения здесь

Шаг-4

чтобы преобразовать файл .JKS в файл .PEM, вам просто нужно скачать KeyStore Explorer JKS в PEM

После ответа на почту подождите от 48 до 72 часов, заполнение хранилища ключей будет сброшено.


6
Что делать, если для приложения не включен вход в приложение Google Play?
Vipul Behl

Ничего не нашел кроме него. Google официально анонсировал новую технику подписания приложений для Android в мае 2017 года.
Разработчик Вики

1
на шаге 3. нужно ли мне создать новый файл jks и преобразовать его в файл pem и отправить его им в качестве повторной почты. этот шаг является правильным ???
giveJob

1
да, вам нужно создать новый файл JSK и преобразовать его в PEM @HemanthSP
разработчик Vicky

да, я это сделал, и теперь мое новое хранилище ключей имеет право на загрузку, я получил подтверждение по почте google
giveJob

35

До сегодняшнего дня из-за потери ключа невозможно обновить приложение до новой версии. В таких случаях единственным решением было опубликовать новое приложение с новым именем пакета и ключом и попросить всех ваших пользователей установить его.

С сегодняшнего дня ключ подписи приложения в Play Console теперь безопасно управляется Google Play, что означает, что вы несете ответственность только за управление своим ключом загрузки. Если ваш ключ загрузки скомпрометирован или утерян, команда разработчиков Google может помочь, подтвердив вашу личность и сбросив ключ загрузки. Google по-прежнему будет повторно подписывать с тем же ключом подписи приложения, позволяя приложению обновляться как обычно.

Для существующих приложений требуется перенести ключ подписи приложения в Google Play. Для новых приложений Google может сгенерировать ключ подписи вашего приложения. После регистрации в программе подписи приложений вы подписываете свой APK с помощью ключа загрузки, который Google использует для аутентификации вашей личности. Затем они удалят эту подпись и повторно подпишут ваше приложение с помощью ключа подписи приложения.

Ссылка: Справка Play Console> Управление ключами подписи приложений


13

Это возможно надолго.

  1. Следуйте инструкциям в Справочном центре Android Studio, чтобы сгенерировать новый ключ. Он должен отличаться от любых предыдущих ключей. В качестве альтернативы вы можете использовать следующую командную строку для создания нового ключа:

keytool -genkeypair -alias newalias -keyalg RSA -keysize 2048 -validity 9125 -keystore nameofkeystore.jks

Этот ключ должен быть 2048-битным ключом RSA и иметь срок действия 25 лет.

  1. Экспортируйте сертификат для этого ключа в формат PEM:

keytool -export -rfc -alias newalias -file upload_certificate.pem -keystore nameofkeystore.jks

Затем загрузите этот pem-файл, заполните форму и отправьте ее на этот сайт . После того, как мы зарегистрируем новый ключ загрузки, вы получите электронное письмо. Принимает запросы на сброс ключей только от владельца учетной записи Play Console .

Все хорошо. Вы можете опубликовать новый выпуск apk с вашим новым файлом jks.


2
Это работает, только если у вас включена подписка на Google Play .
Sumit

нет. нет необходимости подписывать приложение Google Play. по крайней мере, я не включаю его.
ksgngrkn

Это где-нибудь задокументировано?
Sumit

Это работает только для приложений для подписи приложений. Я только что подтвердил.
Euridice01

11

Если вы знаете пароль хранилища ключей, у вас все еще нет соответствующего закрытого ключа для подписи приложения. У вас также нет возможности сгенерировать тот же закрытый ключ, который соответствует вашему открытому ключу.

Поэтому: Всегда делайте резервную копию файла хранилища ключей. Это так же важно, как и исходный код.


1
Итак, если я понял это правильно, этот закрытый ключ генерируется случайным образом для каждого хранилища ключей, верно? И единственное, что мы знаем, это открытый ключ, верно?
iCantSeeSharp

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

Идеально ли хранить файл хранилища ключей и ключи вместе с репо?
Neon Warge

3

Если вы включили подписку Google Play для своего приложения, вам не о чем беспокоиться.

Чтобы проверить, включено ли у вас подписывание приложений Google Play, перейдите в раздел Управление выпусками -> Подписание приложений в консоли Google Play.

Если он включен, вы можете связаться со службой поддержки Google Play, заполнив форму поддержки, или вы также можете выбрать чат с персоналом службы поддержки здесь: https://support.google.com/googleplay/android-developer/answer/7218994? hl = en

Объясните им свою проблему, и они расскажут вам следующие шаги, которые включают создание нового 2048-битного хранилища ключей RSA со сроком действия 25 лет, экспорт ключа в формат PEM и отправку им по электронной почте.

Чтобы экспортировать ключ в формат PEM:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

Это должен быть правильный ответ.
Кайо Сантос,

2

С долгих дней я тоже ищу решение для этого, но до сих пор безуспешно. Если у вас установлена ​​последняя версия apk приложения, вы можете получить от нее сертификаты с помощью команды jarsigner cmd. Но для обновления нужен закрытый ключ. Google Play не давал этому расслабления.


3
у вас есть дополнительная информация о том, как это сделать?
Забс

1

Я создал подписанный apk с помощью студии Android, поэтому в « Путь к хранилищу ключей » я просто набрал какое-то имя без расширения, заполнил это всплывающее окно и подписал приложение. введите описание изображения здесь

в следующий раз при публикации приложения я не помню путь и имя, где оно было создано.

каким-то образом я нахожу местоположение по умолчанию: «C: \ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin»: \ jre \ bin

и в этой папке по дате, затем я попробовал с последним файлом, и это сработало для меня.

Примечание: вы должны запомнить пароль хранилища ключей и пароль ключа.


0

Должен быть способ обойти это .. как насчет отказа жесткого диска?

Я хотел бы добавить, что всегда храните резервную копию хранилища ключей в облачном хранилище, таком как Google Диск, Dropbox, или отправляйте ее себе по электронной почте.


Конечно, есть способы обойти это, просто Google этого не сделает. Магазин Windows (даже если им никто не пользуется) позволяет вам подписывать приложения из Visual Studio (вам просто нужно войти в систему с учетной записью магазина), а затем их можно легко загрузить в магазин. Google -; Microsoft ++;
Хуан Карлос

0

Да, вы можете выпустить обновление существующего приложения с новым ключом!

Теперь Google позволяет загружать новый ключ в существующее приложение, запрашивая его сброс через электронную почту или чат в службе поддержки Google.

Этот процесс занимает 1-2 рабочих дня.

Я выполнил этот процесс и загрузил обновление в то же приложение с новым ключом. Техническая команда Google Play Store помогла мне сбросить предыдущий ключ.


0

Это возможно сейчас, после мая 2017 года вы можете обновить свое приложение, если вы потеряли хранилище ключей или пароль хранилища ключей. Вы не можете восстановить потерянное хранилище ключей, но можете заменить хранилище ключей в playstore. кликните сюда

Процесс подписания приложения:

Вы можете загрузить APK-файлы, подписанные исходным ключом подписи приложения, до или после того, как вы включите подписку приложений в Google Play.

Если вы начинаете использовать наборы Android App Bundle, вы можете протестировать их в тестовых треках, пока используете существующий APK в производственной среде. Вот как работает этот процесс:

  1. Подпишите свой пакет приложений или APK и загрузите его в Play Console.
  2. Процесс подписания отличается в зависимости от того, что вы загружаете:

    • Пакет приложений: Google генерирует оптимизированные APK-файлы из вашего набора приложений и подписывает их с помощью ключа подписи приложения.
    • APK, подписанный с помощью ключа загрузки: Google проверяет и удаляет вашу подпись из APK, а затем отправляет APK с помощью ключа подписи приложения.
    • APK, подписанный ключом подписи приложения: Google проверяет подпись. Google предоставляет пользователям подписанные APK-файлы.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.