新しいGoogle Play App Signingを使用してアプリケーションに署名していますが、キーハッシュが一致していません。
Facebook Loginをアプリに統合しましたが、keyhashは無効だと言われました。 APKのキーハッシュリリースは、Google Playアプリの署名プロセスで作成されたキーハッシュリリースとは異なります。
編集:私がしたステップ:
1)jksキーストアファイルを作成しました。
2)jksファイルで署名されたapkリリースを作成しました。
3)Google Console DeveloperにAPKをインポートし、署名されたキーを変更するGoogle Play App Signingへのサブスクリプション。
4)オンラインになったら、アプリをダウンロードして開き、Facebookの初期化で「無効なキーハッシュ」と言います
以下のコードを使用してアプリでハッシュキーをチェックすると、ハッシュキーは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) {
}
Facebookが言ったハッシュキーをFacebookダッシュボードに入れても、機能しません。 Google Playアプリの署名が署名プロセス中にハッシュキーを変更しているようです。解決するアイデアはありますか?
私は同じ問題を抱えていましたが、あなたが言うように、Google Playストアは新しいキーでapkに再署名し、これはキーハッシュとしてFacebookに提供する必要があるものです(keytoolを使用して生成されたものではありません)。
この答えの後半 https://stackoverflow.com/a/44448437/2640599 は便利です。
基本的に、keytoolとローカルキーを使用する代わりに、Googleが生成したSHA-1アプリ署名証明書に基づいてハッシュをFacebookに提供する必要があります(現在はGoogleへのアップロードに使用されているようです)。
Googleが生成したSHA-1キーを使用する必要があります。次の手順で修正できます。
1)。 Googleコンソールに移動=>Release Management=>App signing=>アプリ署名証明書。
2)。そこからSHA-1証明書をコピーし、hexadecimalにあり、Facebookがそれを必要とするのでbase64そのため、ステップ3に示すコマンドを使用します
3).echoステップ2からのSHA-1キー(16進数)| xxd -r -p | openssl base64
このコマンドは、command Promptでは機能しません。bashon windowsまたはgit cli。
4)。Facebook console=>にbase64キーを貼り付けます設定=>basic=>key hashhes
次のコマンド(Git Bashの場合もある)を使用して、16進形式のSHA-1ハッシュ(Playコンソールにある)をbase64ハッシュに変換できます。
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
出力:
M05IhBlQOh9jpg/2ocIx5QE4VS4=
このハッシュは、たとえばFacebookアプリをセットアップするときに使用できます。 回答ソース
debug.keystore
に対して生成されたキーハッシュを使用しているのではないかと推測しています。
従うべき手順
1.リリース証明書のキーハッシュを生成します。
コマンドラインに移動して、このコマンドを実行します。 <*..*>
のプレースホルダーを適切な値に置き換えます。
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
このコマンドはキーハッシュを生成します。
2.上記のコマンドで生成されたキーハッシュをコピーし、Facebookアプリコンソールに次のように貼り付けます。 。
3. jksでapkに署名します。電話でダウンロードしてインストールしてテストします。
これを試して、私に知らせてください。ではごきげんよう。 :)