2017-09-07 4 views
1

Ich bekomme den "Invalid Key Hash" Fehler auf meinem Android, obwohl meine App in Produktion ist und die Facebook App als öffentlich eingestellt ist. Wenn ich den Schlüssel-Hash in die Facebook-Einstellungen setze, funktioniert es gut, aber ich denke, das würde nur auf meinem eigenen Gerät funktionieren. Was mache ich hier falsch?Facebook Ungültiger Schlüssel Hash in öffentlichen App

+0

Ihre Antwort ist hier [https://stackoverflow.com/questions/45706693/how-to-solve-this-facebook-key-hash-error/45708369#45708369](https://stackoverflow.com/fragen/45706693/how-to-solve-this-facebook-schlüssel-hash-error/45708369 # 45708369) –

Antwort

1

Sie müssen eine Release-APK erstellen und Keyshash mit dieser Methode drucken. und setze das keyHash in fb consol.

public static void printHashKey(Context context) 
{ 
    // Add code to print out the key hash 
    try { 
     PackageInfo info = context.getPackageManager().getPackageInfo(
       com.example.app.BuildConfig.APPLICATION_ID, 
       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 (PackageManager.NameNotFoundException e) { 
     e.printStackTrace(); 

    } catch (NoSuchAlgorithmException e) { 

     e.printStackTrace(); 
    } 
} 
+0

Hallo. Ich habe bereits den Schlüssel-Hash von Unity, unter Facebook-Einstellungen bei Debug Android Key Hash, obwohl dieser Schlüssel das Problem nicht löst und es ist nicht die von dem Fehler. Wie ich oben erwähnt habe, wenn ich den Schlüssel aus dem Fehler einfügen, funktioniert es, aber ist es nicht einzigartig für alle Geräte? –

0

Befolgen Sie diese Schritte zur Lösung.

  1. Fügen Sie diesen Code in Ihre Aktivität ein.

    public static void printHashKey(Context context) 
    { 
        // Add code to print out the key hash 
        try 
        { 
         PackageInfo info = context.getPackageManager().getPackageInfo(com.example.app.BuildConfig.APPLICATION_ID, 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 (PackageManager.NameNotFoundException e) 
        { 
         e.printStackTrace(); 
        } 
        catch (NoSuchAlgorithmException e) 
        { 
         e.printStackTrace(); 
        } 
    } 
    
  2. Anmeldung Ihre APK. (Release APK)

  3. generierte APK unterzeichnet installieren, um Ihr Handy
  4. Verbinden Sie Ihr Telefon mit dem PC.
  5. Jetzt öffnen Sie den Bildschirm, wo Sie den obigen Code setzen.
  6. Hier können Sie Ihre sehen neue HashKey in logcat
  7. Diese Paste HashKey in Facebook Entwickler-Website, wo Sie App erstellt.
  8. Genießen Sie mit Ihrer Anwendung.
+0

Hallo. Ich habe bereits den Schlüssel-Hash von Unity, unter Facebook-Einstellungen bei Debug Android Key Hash, obwohl dieser Schlüssel das Problem nicht löst und es ist nicht die von dem Fehler. Wie ich oben erwähnt habe, wenn ich den Schlüssel aus dem Fehler einfügen, funktioniert es, aber ist es nicht einzigartig für alle Geräte? –

+0

Key hat das gleiche für alle Geräte, Sie App ist live auf Google Play Store? Ist dieses Problem nur mit Zeichen apk? Wenn ja, müssen Sie einen weiteren Schlüssel-Hash in developer.facebook.com hinzufügen, wie in den Schritten meiner Antwort erwähnt –

Verwandte Themen