【问题标题】:Signed APK has different Key-Hash for Facebook签名的 APK 对 Facebook 有不同的 Key-Hash
【发布时间】:2012-08-08 12:39:02
【问题描述】:

我发布了我的 APP,为了测试它,我在手机上安装了 APK。使用导出的 APK Facebook 不起作用(错误的 keyhash),但使用开发人员 bin'ed apk 它可以正常工作。

谁能告诉我发生了什么事?为什么keyhash不同? (第二次,eclipse更新第一次改了)。

还有

因为我已经将 APK 上传到市场并发布了(现在未发布,非常烦人)。此外,我已经在本地删除了 APK,所以我找不到密钥哈希,也无法从市场上下载我自己的应用程序(通过 Google play 尝试过,不能因为它不是免费的)。我什至无法从我的 Google 开发者控制台(Wtf?)下载 APK。那么我是否需要上传另一个版本(比如 1.1?) - 尽管我的应用程序将新跳过 Google Play 中的“新功能”部分,这非常烦人。

谁能建议我在这里应该做什么?

【问题讨论】:

标签: java android eclipse


【解决方案1】:

您签署应用程序以进行分发的密钥与您用于调试的密钥不同。诚然,脸书上的说明并不清楚。

您需要针对您的分发密钥库生成哈希

keytool -exportcert -alias YOUR_DISTRIBUTION_CERT_NAME -keystore YOUR_DISTRBUTION_KEYSTORE_FILE | openssl sha1 -binary | openssl base64

然后将其添加到您在 developers.facebook.com 上的 Facebook 应用设置中,哈希字段可以采用多个哈希(即您的调试证书和分发证书)。

【讨论】:

  • 另外,证书是否总是具有相同的密钥哈希?
  • 证书将始终具有相同的密钥哈希。因此,既然您知道您签署了您发送的版本的密钥,只需再次创建它,使用您的 dist 证书对其进行签名,这至少应该足以测试证书哈希部分。
  • @Pork 'n' Bunny 如何获得 YOUR_DISTRIBUTION_CERT_NAME 和 YOUR_DISTRIBUTION_KEYSTORE_FILE ?这些都是什么?
  • 密钥库是包含您的 android 签名证书的实际文件。密钥库可以保存多个证书,但通常它不仅包含一个证书,CERT_NAME 只是您要使用的密钥库中的证书的名称。
  • keytool -exportcert -alias -keystore | openssl sha1 -二进制 | openssl base64
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多