在谷歌关于短信和通话记录权限的新政策之后,我正在尝试为我的 android 应用程序实现短信检索器 API。本教程看起来很简单,但我在创建/生成相同的哈希时发现了一个问题。
当我打字
keytool -alias MyAndroidKey -exportcert -keystore MyProduction.keystore | xxd -p | tr -d "[:space:]"
Run Code Online (Sandbox Code Playgroud)
或者
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
Run Code Online (Sandbox Code Playgroud)
它说:
'xxd' is not recognized as an internal or external command,
operable program or batch file.
'tr' is not recognized as an internal or external command,
operable program …Run Code Online (Sandbox Code Playgroud) 我真的是Android的新手,我正在尝试实现SMS Retriever API,以便在我的应用中使用OTP。
我正在遵循此指南:https : //developers.google.com/identity/sms-retriever/verify#computing_your_apps_hash_string
不幸的是,我陷入了“ 计算应用程序的哈希字符串 ”部分
我在这里引用指南部分,并在每个问题下方引用我的问题:
以小写的十六进制字符串形式获取应用的公钥证书。例如,要从密钥库获取十六进制字符串,请键入以下命令
keytool -alias MyAndroidKey -exportcert -keystore MyProduction.keystore | xxd -p | tr -d "[:space:]"
Run Code Online (Sandbox Code Playgroud)在哪里可以找到“公钥证书”,我应该在哪里运行此命令?
SHA-256是什么,计算它意味着什么?
无法理解,我应该在这里做什么?
我正在开发一个 flutter 应用程序,需要通过发送 OTP 来验证用户的手机号码。为此,我使用 Firebase 电话身份验证。一切正常,直到我将应用程序上传到 Play 商店。将应用程序上传到 Play 商店后,短信自动检索功能不再起作用。(上传到 Play 商店后,短信不包含11 位哈希密钥)。
满足以下要求
非常感谢您的帮助,因为我在过去两天中一直在寻找这个问题,但没有任何结果。
android firebase firebase-authentication sms-verification flutter
我正在尝试实施Sms Retriever以在没有任何 SMS 许可的情况下从用户移动设备获取 otp。
最初,我按照此处所述使用 keytool 生成了带有 keystore(.jks) 的哈希键
当我使用此密钥库签署 apk 并使用此哈希密钥接收 SMS 时,它工作正常。
但是在将应用程序上传到 google play 商店后,短信接收器不起作用。我们启用了谷歌应用程序签名来签署应用程序。我发现谷歌将删除上传的签名,这是使用谷歌应用签名的应用程序的密钥,如here所述。所以,我试图将谷歌应用签名证书添加到上传的密钥库,并使用别名创建新的哈希密钥。但我无法将应用签名证书添加到具有别名的密钥库。
有什么建议可以为短信检索器生成带有应用签名证书的哈希键吗?