Я только что зарегистрировался в программе Google Play App Signing, которая требовала загрузки зашифрованной версии хранилища ключей релиза и имела «необязательный» шаг для создания хранилища ключей загрузки - необязательно в кавычках, потому что я думаю, что это должно быть обязательный шаг, но, в любом случае, после успешной регистрации у меня остается сертификат загрузки , который я должен каким-то образом использовать для подписи будущих выпусков приложения.
Что я сделал до сих пор: я создал новое хранилище ключей из Android Studio, установил пароли хранилища и псевдонимов и попытался импортировать upload_cert.der в существующий псевдоним - не удалось:
keytool -importcert -file upload_cert.der -alias upload -keystore upload-keystore.jks
ошибка keytool: java.lang.Exception: открытые ключи в ответе и хранилище ключей
не совпадают
Я также пытался импортировать сертификат загрузки без указания псевдонима (или удаления существующего псевдонима и создания нового) или с другим псевдонимом:
keytool -importcert -file upload_cert.der -keystore upload-keystore.jks
... также не удалось: в итоге был создан новый псевдоним mykey , который не был защищен паролем и завершился ошибкой с сообщением:
Причина: java.lang.RuntimeException: com.android.ide.common.signing.KeytoolException: не удалось прочитать загрузку ключа из хранилища "/path/to/upload-keystore.jks": записи доверенного сертификата не являются паролем -защищенный
... естественно, я попытался установить пароль для псевдонима:
keytool -keypasswd -alias upload -keystore upload-keystore.jks
, что также не удалось с сообщением:
ошибка keytool: java.lang.Exception: у псевдонима нет ключа
... и теперь у меня закончились идеи.
Тем временем я отправил вопрос / запрос в службу поддержки Google Play, чтобы обновить мой ключ загрузки, но я надеюсь, что в этой ситуации есть решение (поддержка довольно медленная), поскольку документация никоим образом не подразумевает, что генерация хранилища ключей загрузки и загрузка зашифрованного закрытого ключа этого хранилища ключей является требованием. Итак, либо документация расплывчатая / неясная / неправильная, либо есть способ использовать сгенерированный upload_cert.der. Есть мысли?
Редактировать:
Благодаря ответу и комментарию, предоставленному Pierre , я понял, что если вы не создаете / не предоставляете ключ загрузки, следует использовать ваш существующий оригинальный ключ подписи с upload_cert.der . Таким образом, единственным требованием будет вставить сертификат загрузки, выполнив:
keytool -importcert -file upload_cert.der -keystore original-signing-keystore.jks
... и вы сможете продолжить публикацию своих приложений в Play Store.