2013-05-06 81 views
1

我完成了我的應用程序,並且所有的東西都能正常工作,但是在我簽署了我的應用程序以在Google上發佈它之後,已簽名的apk無法通過Facebook登錄,我嘗試了下面的方法來解決此問題但直到現在,我還沒有任何作品。已簽名的apk文件不能用facebook登錄SDk3

  1. 我通過keytool生成了hashkey,並將它添加到我在Facebook上的應用程序頁面。

    keytool -exportcert -alias kartag -keystore C:\Data\app\client\android\keyStore\KarTag | "C:\bin\bin\openssl" sha1 -binary |"C:\bin\bin\openssl" base64 
    

    然後輸入android作爲密碼並輸入我的密鑰庫密碼,但也沒有任何作用。

  2. 我寫下面的代碼在運行時得到hashkey和生成的密鑰不同於上面的方法生成並添加到我的Facebook應用程序頁面,但我也不工作。

    String key = ""; 
    try { 
        PackageInfo info = getPackageManager().getPackageInfo(
          "com.kartag.gui", 
          PackageManager.GET_SIGNATURES); 
        for (Signature signature : info.signatures) { 
         MessageDigest md = MessageDigest.getInstance("SHA"); 
         md.update(signature.toByteArray()); 
         Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
         key = Base64.encodeToString(md.digest(), Base64.DEFAULT); 
         } 
    } catch (NameNotFoundException e) { 
    
    } catch (NoSuchAlgorithmException e) { 
    
    } 
    

請,如果你知道解決此問題的幫助,因爲我花了三天時間,現在,直到解決這個問題的任何方法。

回答

0

您確定您提交給Facebook的密鑰哈希值對應於您用來簽署提交給Google Play的應用程序的密鑰存儲區嗎?如果它在簽名之前正在工作,那麼最有可能將您的調試密鑰庫哈希提交給Facebook,而不是您的簽名密鑰庫哈希。

+0

我通過eclipse簽署了apk,所以密鑰存儲之後我通過keytool執行了上述命令。你是否看到任何錯誤? – user2317753 2013-05-06 21:14:40

+0

是的,「android」密碼通常是調試密鑰庫的默認密碼。如果您生成了自己的密鑰庫,則最好使用更安全的密碼。你有沒有在eclipse中「導出」你的應用程序,或者只是「運行它」?雖然不確定你的java代碼。 – 2013-05-06 21:21:24

+0

我試過我的密鑰庫密碼,我通過eclipse在簽名過程中輸入了密碼,但不起作用。我通過eclipse導出應用程序,如本鏈接中的「使用Eclipse ADT編譯和簽名」部分所述。 http://developer.android.com/tools/publishing/app-signing.html – user2317753 2013-05-06 21:28:37