Ausgabe
Ich verwende das neue Google Play App Signing, um meine Anwendung zu signieren, und es gibt einen nicht übereinstimmenden Schlüssel-Hash.
Ich habe Facebook Login in meine App integriert und es sagte Keyhash ungültig. Die Keyhash-Version meiner APK unterscheidet sich von der Keyhash-Version, die durch den Prozess der Google Play-App-Signatur erstellt wurde.
BEARBEITEN: Schritt, den ich gemacht habe:
1) Erstellte eine jks-Keystore-Datei.
2) Erstellt eine APK-Version, die mit der jks-Datei signiert ist.
3) Importierte das APK in Google Console Developer mit dem Abonnement für Google Play App Signing, das den signierten Schlüssel ändert.
4) Sobald ich online bin, lade ich die App herunter und öffne sie, Facebook-Initialisierung sagt: Ungültiger Schlüssel-Hash
Wenn ich den Hashkey in der App über den folgenden Code überprüfe, unterscheidet sich der Hashkey von dem ungültigen Hashkey, der von Facebook angegeben wird:
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 von Facebook genannten Hashkey in das Facebook-Dashboard einfüge, funktioniert es nicht. Es scheint, dass Google Play App Signing den Hashkey während des Signiervorgangs ändert. Haben Sie eine Idee, um es zu lösen?
Lösung
Ich hatte das gleiche Problem und es scheint, dass der Google Play Store, wie Sie sagen, Ihre apk mit einem neuen Schlüssel neu signiert, und diesen müssen Sie Facebook als Schlüssel-Hash zur Verfügung stellen (nicht den, der mit keytool generiert wurde).
Die zweite Hälfte dieser Antwort https://stackoverflow.com/a/44448437/2640599 ist nützlich.
Grundsätzlich müssen Sie Facebook den Hash basierend auf dem von Google generierten SHA-1-App-Signaturzertifikat bereitstellen, anstatt keytool und Ihren lokalen Schlüssel zu verwenden (der anscheinend nur zum Hochladen auf Google verwendet wird).
Beantwortet von – Maulwurf
Antwort geprüft von – Dawn Plyler (FixError Volunteer)