我使用以下命令生成了 11 个字符的哈希值AppSignatureHelper
班级。但是将 apk 上传到 Play 商店后,它们的哈希值就不再起作用了。我发现 Play 将密钥替换为另一个密钥,这就是哈希值也发生更改的原因。现在我在获取 11 个字符的哈希密钥时遇到问题。
我不知道如何使用Google给出的命令。我发现这个命令来自here https://stackoverflow.com/a/50600769/4961874
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 应用程序签名,因此我必须使用此命令,
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 检索器仍然无法工作。
解决方案:在 Nick Fortescue 的回答的帮助下,我下载了 DER 格式的文件。然后使用以下命令将其转换为 .jks 文件,
keytool -importcert -alias myalias -file deployment_cert.der -keystore certificate.jks -storepass mypassword
然后在certificate.jks上执行上面的第一个命令,它成功了!