2012-03-23 16 views
0

我有我的Android應用程序的Facebook登錄設置。當用戶點擊登錄(安裝在手機上的Facebook應用程序)應用的回報:安卓Facebook的開發關鍵在每個手機的變化

「登錄失敗:INVALID_KEY:Android的重點不匹配你的鑰匙」

出現這種情況每部手機上,但我發展的手機。我使用以下命令通過facebook開發人員網站生成密鑰:keytool -exportcert -alias androiddebugkey -keystore〜/ .android/debug.keystore | openssl sha1 -binary | openssl base64

我假設問題是Facebook中的註冊密鑰用於調試時需要進行分發。如果是這種情況,我該如何創建對於從應用商店下載的所有應用都有效的分發密鑰?

回答

1

對於使用FB SDK的應用程序有一個解決方法。您可以使用您的釋放密鑰創建調試密鑰庫(通過使用JDK keytool或GUI工具(如KeyStore Explorer for Windows或其他任何OS的模擬程序)進行查看和導入)。

您的新密鑰庫和密鑰應具有以下憑據(通過Android開發人員指南):

  • 庫密碼: 「機器人」
  • 密鑰別名: 「androiddebugkey」
  • 密鑰密碼:「機器人「

後,它提供了路徑,新的密鑰存儲在Eclipse或ant.properties和計算哈希爲新的調試密鑰將等於添加到舊版本密鑰的散列(例如,使用android-fb-keytool,不需要JDK或OpenSSL)。

+0

非常感謝你,我也遇到了這個問題,你的建議很完美。基於我的釋放密鑰創建了一個新的debug.keystore,其中包含好的別名和密碼,並且所有內容都正常工作。 – 2012-05-23 18:05:37

3

我認爲這是發生在您的應用在從Android Market(Google Play)安裝到客戶手機上時發生的情況嗎?如果是這樣,那麼您無疑使用了不同的密鑰庫文件和別名來簽署應用程序進行分發。在這種情況下,執行相同的一系列命令,只需將分發密鑰庫文件名替換爲~/.android/debug.keystore,並使用別名替換androiddebugkey,然後將生成的簽名添加到您的Facebook應用。

+0

yes it android market/play apps。你是否在說我將debug.keystore替換爲我用於簽署Android市場應用程序的密鑰?如果我不知道我的別名,別名還可以保留androiddebugkey嗎? – Atma 2012-03-23 16:13:02

+2

您需要知道包含您用於簽署應用市場版本的密鑰庫的文件名稱以及用於簽署應用的別名名稱。所以這個命令看起來像這樣:'keytool -exportcert -alias android-release -keystore app-release.keystore | openssl sha1 -binary | openssl base64'當然,你可以將「android-release」替換爲你用來簽名應用市場版本的別名,並用相應的名稱/路徑替換「app-release.keystore」 )密鑰庫。 – mharper 2012-03-23 23:47:15