Я интегрирую SMS Retriever API в мое приложение для Android.
Я следовал ниже документов, чтобы сгенерировать хеш-строку приложения
https://developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string
Ниже приведены способы создания хэша:
1) Команда
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
2) AppSignatureHelper класс
Я получил разные хеши для разных методов
prodRelease (с помощью команды) - R2J ******* N
prodRelease (с использованием класса AppSignatureHelper) - ROI ******* 6
а также разные хеши для разных вариантов сборки.
prodRelease: ROI ******* 6
prodDebug: CAz ******* N
devRelease: R2J ******* N
devDebug: ROI ******* 6 (То же, что и prodRelease)
Я проверил мое приложение с шаблоном SMS с хешем prodRelease, т.е. ROI ******* 6. Он работал отлично, а через два дня перестал работать. Я отлаживаю, и теперь хэши снова отличаются, и теперь он работает с другим хешем R2J ******* N.
Я ожидаю, что Хеши будут такими же, как это зависит от идентификатора пакета приложения.
Так почему разные хеши и какой хеш считается правильным, или он будет меняться каждый раз, и мне нужно постоянно менять шаблон SMS на сервере?
Или есть какой-то другой лучший способ убедиться в хэше?
Вам нужен один хеш для каждого варианта сборки.
1- Отладка 2- Выпуск 3- Если вы подписываете свое приложение в консоли Google Play, вам нужен еще один, потому что Google меняет хэш при загрузке приложения