2012-08-08 29 views
4

我發佈了我的APP併爲了測試它,在我的手機上安裝了APK。隨着導出的APK Facebook不起作用(錯誤的keyhash),但與開發商bin'ed apk它工作正常。已簽名的APK對Facebook有不同的Key-Hash

有人可以告訴我發生了什麼事嗎?爲什麼keyhash不同? (第二次,eclipse更新第一次改變了它)。

而且

既然我已經上傳的APK市場發佈了它(現在未公佈,非常惱人)。此外,我已經在本地刪除了APK,因此我無法找到密鑰哈希,並且無法從市場上下載我自己的應用(儘管Google玩過,但不會導致它不是免費的)。我甚至無法從Google Developer Console(Wtf?)下載APK。那麼我需要上傳另一個版本(說1.1?) - 雖然我的應用程序將新的跳過Google Play中的「新增功能」部分,這非常惱人。

任何人都可以提出我應該在這裏做什麼?

+0

請嘗試[this。](http://stackoverflow.com/a/17424353/2219600) – amalBit 2014-12-11 07:40:40

回答

11

您用於分發應用程序的密鑰與您用於調試的密鑰不同。 Facebook的說明並不清楚這一點。

你需要生成散列對你的分配密鑰庫

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

然後在developers.facebook.com超過其添加到您的Facebook應用程序設置字段的散列可採取多種散列(即。您的調試證書和你的發行證書)。

+0

另外,證書是否始終具有相同的密鑰哈希值? – 2012-08-08 15:49:36

+0

該證書將始終具有相同的密鑰哈希值。因此,由於您知道您簽發了哪個版本的密鑰,只需再次創建它,使用dist證書籤名即可,並且至少應該測試證書散列部分。 – 2012-08-08 16:09:01

+1

@Pork'n'Bunny如何獲取YOUR_DISTRIBUTION_CERT_NAME和YOUR_DISTRBUTION_KEYSTORE_FILE?這些都是什麼? – Mallikarjun 2013-12-13 10:02:01