Я создал хэш 11 символов, используя класс AppSignatureHelper
. Но после загрузки apk для воспроизведения в магазине, хэш не работает больше. И я узнал, что Play заменяет ключ другим, поэтому хэш также изменяется. Теперь у меня возникли проблемы с получением хэш-ключа 11 char.
Я не знаю, как использовать команды, данные Google. Я нашел эту команду здесь
keytool -exportcert -alias MyAndroidKey -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp 'cat' | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11
Поскольку для моего приложения включена подписка на Play App, мне придется использовать эту команду,
keytool -exportcert -keystore MyProductionKeys.keystore | xxd -p | tr -d "[:space:]" | echo -n com.example.myapp 'cat' | sha256sum | tr -d "[:space:]-" | xxd -r -p | base64 | cut -c1-11
Я заменил keytool
своим путем из папки JDK bin, но потом он сказал, что xxd
не был распознан, поэтому я загрузил его с веб-сайта, теперь он говорит, что tr
не распознается, я думаю, он скажет, что и для cut
.
Пожалуйста, простите меня, если мне кажется, что я ничего не спрашиваю, но как я могу это разрешить?
UPDATE: я пробовал вторую команду сверху на машине linux, команда работала и давала мне 11-символьный хеш, но все же ретривер SMS не работает.
РЕШЕНИЕ: С помощью ответа Ник Фортескью я загрузил форматированный файл DER. Затем преобразовали его в файл.jks, используя следующую команду:
keytool -importcert -alias myalias -file deployment_cert.der -keystore certificate.jks -storepass mypassword
Затем выполнил первую команду сверху на cert.jks, и она сработала!