5

我正在我的 android 应用程序中集成SMS Retriever API

我按照以下文档生成应用程序的哈希字符串:
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 相同)

我使用带有 prodRelease 哈希的 SMS 模板测试了我的应用程序,即ROI*******6。它工作得很好,然后两天后,它停止工作。我进行了调试,现在哈希值再次不同,现在它可以与不同的哈希值R2J*******N一起使用。

我希望哈希值相同,因为它取决于应用程序的包 ID。
那么为什么不同的哈希值和哪个哈希值是正确的,或者它每次都会改变,我必须不断地改变服务器中的 SMS 模板?
或者有没有其他更好的方法来确定哈希?

4

1 回答 1

0

你需要为每个构建变体一个哈希值。

1- 调试 2- 发布 3- 如果您在 google play console 中签署您的应用程序,您需要另一个,因为 google 在您上传应用程序时更改了哈希

于 2019-04-16T14:47:56.320 回答