2016-10-31 2 views
0

Ich habe kein Problem mit Facebook anmelden mit Development Key und Debug-apk laufen. Aber wenn ich Release apk erzeugen und auf dem Gerät ausgeführt, zeigt esFacebook Android Release Hash-Taste

„Ungültige Schlüssel hat, wird der Schlüssel Hash-xxxxxxxxxx alle gespeicherten Schlüssel Hashes nicht überein“ Ich habe tatsächlich die Entriegelungstaste auf der Konsole, und dass Schlüssel nicht den Schlüssel nicht oben übereinstimmen, auch ich die Taste oben gezeigt eingegeben hat, ist es nicht funktioniert, verwendet ich den folgenden Befehl eines Freigabeschlüssel zu generieren:

keytool -exportcert -alias androiddebugkey -keystore C:\Users\ywj7931\.android\debug.keystore | C:\Users\ywj7931\Downloads\openssl-0.9.8e_X64\bin\openssl sha1 -binary | C:\Users\ywj7931\Downloads\openssl-0.9.8e_X64\bin\openssl base64 

ist es, weil mein App nicht auf google veröffentlicht spielen oder noch nicht von Facebook bewertet?

Antwort

0

Sie müssen Ihren Production Hash-Schlüssel erhalten und ihn zu Ihren Facebook Hash Keys in der Facebook-Konsole hinzufügen.

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64 

Nachdem Sie den Schlüssel erhalten haben, können Sie ihn auf Ihrer Facebook-App-Seite hinzufügen.

oder Sie erhalten es wie unten in der prod apk, die Sie mit Ihrem Production Key Store unterzeichnet haben.

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
     "com.app.package", 
     PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
     MessageDigest md = MessageDigest.getInstance("SHA"); 
     md.update(signature.toByteArray()); 
     Log.d("KeyHash", "KeyHash:"+ Base64.encodeToString(md.digest(), 
     Base64.DEFAULT)); 
     Toast.makeText(getApplicationContext(), Base64.encodeToString(md.digest(), 
       Base64.DEFAULT), Toast.LENGTH_LONG).show(); 
     } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

Nachdem Sie bekommen, müssen Sie es zu Ihren Hash-Tasten in Ihrer App-Seite in der Facebook-Konsole hinzufügen.

+0

Ich denke, der erste Befehl ist genau der gleiche wie meins verwendet, aber immer noch nicht funktioniert – ywj7931

+0

in Ihrer Produktion apk, die Sie mit dem Schlüssel signiert haben, können Sie zweite Lösung versuchen und Ihren Schlüssel protokollieren. dann können Sie es zur Facebook-Konsole hinzufügen und dieses Protokoll und die Operation von Ihrer apk entfernen. – savepopulation

+0

Nun, es funktioniert immer noch nicht, ist es, weil meine App nicht auf Google Play veröffentlicht hat? Für die erste Lösung verwende ich den Schlüssel, den ich meiner apk signiert habe, ist das korrekt? – ywj7931

1

Das Problem ist, dass Sie Schlüssel Hash nicht auf Ihrem gespeicherten Schlüssel Hash auf Facebook übereinstimmen. Sie können das Protokoll Schlüsselhash mit diesem Code sehen:

Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // Add code to print out the key hash 
    try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "com.facebook.samples.hellofacebook", 
       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)); 
      } 
    } catch (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    } 

Und dann kopieren und diese Veröffentlichung Key Hash in Ihrem Facebook-App-ID Android Einstellungen einfügen.

aktualisieren wenn Sie wollen es werden manuell hinzufügen können Sie den Schlüssel Hash aus Fehler in Ihrer Anwendung hinzufügen und dann Android-Einstellungen manuell Ihre Facebook-App-IDs eingeben. dies funktioniert für mich, aber Schmerzen, um die richtige zu tippen und auch nicht vergessen, ~ oder ein beliebiges Zeichen, das aus ungültigen Schlüssel-Hash angezeigt.

+0

Dies sollte Entwicklungsschlüssel sein, und ich habe es kopiert und in meine Konsole eingefügt, und es funktioniert immer noch nicht – ywj7931

+0

@ ywj7931 Sie können es auch manuell eingeben, aber schmerzhaft, wenn Sie es eingeben. –

Verwandte Themen