Google Play App-Signierung - KeyHash Mismatch
Ich bin mit der neuen Google Play-App Signieren zum signieren meiner Anwendung, und es besteht ein Missverhältnis key-hash.
Integrierte ich das Facebook-Login in meine app und es sagte keyhash ungültig.
Der keyhash Veröffentlichung meines APK unterscheidet sich von der keyhash release erstellt durch den Prozess der Google Play App-Signierung.
BEARBEITEN : Schritt, den ich Tat:
1) Erstellt einen jks-keystore-Datei.
2) Erstellt eine apk-release unterzeichnet, mit dem jks-Datei.
3) Importiert die APK in der Google Entwickler-Konsole, mit dem Abo zu Google Play App-Signierung, die zu ändern, die signierten Schlüssel.
4) Einmal online, ich herunterladen und öffnen der app, Facebook Initialisierung sagen : Ungültiger Key hash
Wenn ich den hashkey in der app über den code unten, wird der hash-Schlüssel ist anders der unwirksamen hashkey sagte von Facebook:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.package",
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) {
} catch (NoSuchAlgorithmException e) {
}
Auch wenn ich den hashkey sagte von Facebook in den Facebook-dashboard, wird es nicht funktionieren.
Es scheint, Google Play die App-Signierung ändern Sie den hashkey während der Signierung.
Haben Sie eine Idee es zu lösen?
- Sie sollten mit einem separaten Schlüssel-hash für die Produktion erzeugt werden, die mit Ihrem release-keystore-Datei. 🙂
- In der Tat, ich die ersten Anzeichen meiner app für die Produktion über android studio mit ein .jks-Datei. Erstellen Sie eine APK-Version, die ich importieren in Google-Play Konsole. Ich sehe nicht, was ich verpasst habe.
- Ich meine, Sie generieren die facebook-api-Schlüssel (mit dem release-keystore-Datei, wie hast du für immer die api-Schlüssel für debug-Zertifikat.
- ja, das was ich gemacht habe, aber den key hash generiert werden, sind differents zwischen der apk vor und nach der Unterzeichnung durch Google.
- Können Sie uns die Schritte, die Sie gemacht haben? Kannst du es in deiner Frage? Seine schwer für mich vorzustellen, dass das problem, das Sie gegenüberstellen.
- Vielen Dank für Eure Hilfe, ich habe gerade editiert.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte das gleiche Problem und es scheint, dass wie du sagst, der Google Play Store re-signiert Ihr apk mit einem neuen Schlüssel, und das, was Sie bieten müssen, um Facebook als Schlüssel hash (nicht, generiert mithilfe von keytool).
In der zweiten Hälfte dieser Antwort https://stackoverflow.com/a/44448437/2640599 nützlich ist.
Grundsätzlich müssen Sie Facebook mit dem hash, basierend auf dem SHA-1-App-signing-Zertifikat von Google generiert werden, anstelle der Verwendung von keytool und Ihre lokalen Schlüssel (was es scheint, ist jetzt nur für den Upload zu Google).
Müssen Sie die SHA-1-Schlüssel generiert von Google. Folgende Schritte würde es beheben.
1). Gehen Sie zu Google console => Release-Management => die App-Signierung => App-signing-Zertifikat.
2). Kopieren Sie die SHA-1-Zertifikat gibt es ab und an, wie es in hexadezimale und seit Facebook muss es in base64 so verwenden Sie den Befehl in Schritt 3
3).echo SHA-1-Schlüssel aus Schritt 2 (Hexadezimal) | xxd -r -p | openssl base64
Dieser Befehl funktioniert nicht in Eingabeaufforderung verwenden bash unter windows oder git cli.
4). Fügen Sie den base64 Schlüssel in Facebook-Konsole => Einstellungen => basic => Schlüssel hashes
C:\Program Files\Git\bin
C:\Program Files\Git\usr\bin
(du musst git for windows installiert)Können Sie konvertieren SHA-1-hash in hex-format (wie Sie im Spiel die Konsole) in das base64-hash, indem Sie den folgenden Befehl (auf vielleicht Git Bash):
Ausgabe:
Dieser hash kann verwendet werden, zum Beispiel beim einrichten der Facebook-app. Antwort Quelle
Ich vermute, dass Sie vielleicht mit der Schlüssel-hash generiert, der für
debug.keystore
.Schritte, die Sie Folgen müssen
1.Generate key hash für die Freigabe.
Gehen Sie zur Befehlszeile, und führen Sie diesen Befehl aus. Ersetzen Sie die Platzhalter in
<*..*>
mit den entsprechenden Werten.Dieser Befehl erzeugt einen Schlüssel-hash.
2.Kopieren Sie den key-hash erzeugt durch den oben genannten Befehl, und fügen Sie es in Ihre Facebook-app-Konsole wie diese..
3.Signieren der apk mit Ihrem jks. Downloaden und installieren Sie auf Ihrem Handy zu testen.
Versuchen Sie dies und lassen Sie mich wissen. Alle die besten. 🙂