webentwicklung-frage-antwort-db.com.de

Google Play App Signing - Nicht übereinstimmender Schlüssel

Ich benutze die neue Google Play-App-Signatur, um meine Anwendung zu signieren, und es gibt einen nicht übereinstimmenden Schlüsselhash.

Ich habe Facebook Login in meine App integriert und es wurde angegeben, dass Keyhash ungültig ist. Die Keyhash-Version meines APK unterscheidet sich von der Keyhash-Version, die durch den Prozess der Google Play-App-Signatur erstellt wurde. 

EDIT: Schritt, den ich gemacht habe:

1) Erstellt eine Jks-Keystore-Datei.

2) Erstellt ein mit der JKS-Datei signiertes APK-Release.

3) Importierte die APK in Google Console Developer mit dem Abonnement für Google Play App Signing, wodurch der signierte Schlüssel geändert wird.

4) Sobald ich online bin, lade ich die App herunter und öffne sie. Die Facebook-Initialisierung sagt: Ungültiger Schlüsselhash

Wenn ich den Hash-Schlüssel in der App über den folgenden Code abchecke, unterscheidet sich der Hash-Schlüssel von dem ungültigen Hash-Schlüssel, der von Facebook gesagt wurde:

  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) {

    }

Selbst wenn ich den von Facebook angegebenen Hash-Code in das Facebook-Dashboard stecke, funktioniert er nicht. Es scheint, als ob Google Play App Signing den Hash-Schlüssel während des Signaturvorgangs ändert. Haben Sie eine Idee, das Problem zu lösen?

7
Rocé Tarentula

Ich hatte das gleiche Problem und es scheint, dass der Google Play Store, wie Sie sagen, Ihren apk mit einem neuen Schlüssel signiert, und dies müssen Sie Facebook als Schlüsselhash bereitstellen (nicht das mit keytool erzeugte).

Die zweite Hälfte dieser Antwort https://stackoverflow.com/a/44448437/2640599 ist nützlich.

Grundsätzlich müssen Sie Facebook den Hash auf der Grundlage des von Google generierten SHA-1 App-Signaturzertifikats bereitstellen, anstatt keytool und Ihren lokalen Schlüssel zu verwenden (der jetzt scheinbar nur für das Hochladen auf Google verwendet wird).

15
mole

Sie müssen den von Google generierten SHA-1-Schlüssel verwenden. Folgende Schritte würden es beheben. 

1). Gehen Sie zur Google-Konsole => Release Management => App-Signatur => App-Signaturzertifikat

2). Kopieren Sie das SHA-1-Zertifikat von dort und in hexadezimal . Da Facebook es in base64 benötigt, verwenden Sie den Befehl in step 3  

3) .echo SHA-1-Schlüssel von Schritt 2 (Hexadezimal) | xxd -r -p | openssl base64
Dieser Befehl funktioniert nicht in Befehl Eingabeaufforderung use bash unter Windows oder git cli

4). Fügen Sie den base64-Schlüssel ein in Facebook-Konsole => Einstellungen => basic => Tastenhashes  

14
neer17

Sie können den SHA-1-Hash im Hex-Format (wie in der Play-Konsole zu finden) mit dem nächsten Befehl (möglicherweise auf Git Bash) in Base64-Hash konvertieren:

echo 33:4E:48:84:19:50:3A:1F:63:A6:0F:F6:A1:C2:31:E5:01:38:55:2E | xxd -r -p | openssl base64

Ausgabe:

M05IhBlQOh9jpg/2ocIx5QE4VS4=

Dieser Hash kann zum Beispiel beim Einrichten der Facebook-App verwendet werden. Antwortquelle

2
Garvit Jain

Ich vermute, dass Sie möglicherweise den für debug.keystore generierten Schlüssel-Hash verwenden.

Schritte müssen Sie folgen

1. Generieren Sie einen Schlüsselhash für das Freigabezertifikat.

Gehen Sie zur Befehlszeile und führen Sie diesen Befehl aus. Ersetzen Sie die Platzhalter in <*..*> durch entsprechende Werte.

keytool -exportcert -alias <*provide an alias here. I recommend to use the same alias that you use for google play app signing*> -keystore _<*your path to the jks certificate*> | openssl sha1 -binary | openssl base64

Dieser Befehl generiert einen Schlüsselhash.

2.Kopieren Sie den mit dem obigen Befehl generierten Schlüsselhash und fügen Sie ihn wie folgt in Ihre Facebook-App-Konsole ein.   .

3.Sign die apk mit ihren jks. Laden Sie die Software herunter und installieren Sie sie zum Testen.

Versuchen Sie es und lassen Sie es mich wissen. Alles Gute. :)

0
SripadRaj