web-dev-qa-db-ja.com

Google Playアプリの署名-キーハッシュの不一致

新しい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アプリの署名が署名プロセス中にハッシュキーを変更しているようです。解決するアイデアはありますか?

13
Rocé Tarentula

私は同じ問題を抱えていましたが、あなたが言うように、Google Playストアは新しいキーでapkに再署名し、これはキーハッシュとしてFacebookに提供する必要があるものです(keytoolを使用して生成されたものではありません)。

この答えの後半 https://stackoverflow.com/a/44448437/2640599 は便利です。

基本的に、keytoolとローカルキーを使用する代わりに、Googleが生成したSHA-1アプリ署名証明書に基づいてハッシュをFacebookに提供する必要があります(現在はGoogleへのアップロードに使用されているようです)。

22
mole

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

24
neer17

次のコマンド(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アプリをセットアップするときに使用できます。 回答ソース

6
Garvit Jain

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に署名します。電話でダウンロードしてインストールしてテストします。

これを試して、私に知らせてください。ではごきげんよう。 :)

0
SripadRaj