У меня есть игра в Google Play, которую я должен обновить. Игра была сделана давным-давно в Unity 2017
, в то время я не помню, чтобы у меня был какой-либо процесс подписывания приложения, или, если бы я это сделал, я не помню, где находится этот файл.
При загрузке APK в Google Play я получил ошибку:
Upload failed
You uploaded an APK that is not signed with the upload certificate. You must use the same certificate. The upload certificate has fingerprint:
[ SHA1: F9:F0... ]
and the certificate used to sign the APK you uploaded have fingerprint:
[ SHA1: 3D:67... ]
Я искал эту проблему и следовал следующим темам и принял решения: https://answers.unity.com/questions/1372982/how-i-can-sign-my-apk-with-an-google-plays-upload.html и Подписание APK с помощью ключа загрузки, предоставленного Google Play
Вот что я сделал:
- Я создал новый файл хранилища ключей в единстве и новый ключ и дал ему псевдоним
user
.
- Я загрузил сертификат загрузки с моей консоли Play.
- Затем я добавил сертификат загрузки в файл хранилища ключей, сгенерированный на первом шаге, используя:
keytool.exe -importcert -file upload_cert.der -keystore <keystorefile>
- Это работало нормально, и когда я проверял файл хранилища ключей с помощью команды:
keytool.exe -list -keystore "C:\user1.keystore"
:
.
Keystore type: jks
Keystore provider: SUN
Your keystore contains 2 entries
user, 06-May-2019, PrivateKeyEntry,
Certificate fingerprint (SHA1): FD:A6:5A:...
mykey, 06-May-2019, trustedCertEntry,
Certificate fingerprint (SHA1): F9:F0:89:...
Как видно, команда добавила требуемый ключ сертификата в мое хранилище ключей, но создала для него другую запись mykey
и не перезаписала user
.
Теперь, когда я хочу собрать свой apk в единстве и выбрать хранилище ключей и ключ из publishing settings
, там появляется только псевдоним user
, и apk подписывается user SHA1
, а не обязательным mykey SHA1
.
Я просто не могу вывести это глупое обновление, и я потратил впустую целый день, пытаясь это исправить. Любая помощь будет оценена.
Спасибо