2016-08-01 8 views
1

私は自分のアプリにFacebookログイン統合を使用しています。署名付きAPK用のハッシュキーFacebookを設定し、正常に実行しました。しかし、時には私が新しいAPKファイルをリリースするとき、ハッシュキーはもう有効ではありません( "無効なキーハッシュのfacebookアンドロイドは保存されたものと一致しません")。署名付きAPKのAndroid Facebookハッシュキーが時々変更される

でした私は「ハッシュ変化し、また、PCによっては、時々キーがそう変更した場合にすることができますし、ちょうどそれに対処する必要があるでしょう」ことを発見し、以下のリンクを読んで android hash key

あなたは私にこのことについてもっと詳しく説明してもらえますか? 署名付きAPKのハッシュキーFacebookが変更されることがありますか?アプリがいつプレイストアにアップロードされるのですか?

ありがとうございます。

+0

キーapk.thatデバッグサインが私のために働いている間、私は、ハッシュキーを得た後、私は、同じ問題に直面していました。 – Vasant

+0

apkをリリースモードでリリースしている間、facebookデベロッパーコンソールにハッシュキーを登録する必要があります! – Piyush

+0

には複数のハッシュ値を追加するオプションがあります。アンドロイドスタジオを使用している場合は、右側のウィンドウのgradleタスクリストから直接「signingReport」タスクを実行して、署名付きビルドのハッシュ値を簡単に取得できます。 ..thanks –

答えて

0

各PCに異なるdebug.keystoreファイルがあるため、PCの切り替え時にデバッグキーハッシュが変更されます。 release.keystoreファイルを使用してkeyhashをリリースすると、PCを切り替えても変更されません。この場合、同じrelease.keystoreファイルを使用しています。

+0

あなたのコメントでは、それは1つのファイルrelease.keystoreだけを使用している場合、ハッシュキーが決して変更されないということですね。 –

+0

ええ..それはFacebookの開発者のドキュメントごとに変更されません。 – LvN

+0

変更している場合は、同じファイルを使用していることを確認してください。フェイスブックデベロッパーコンソールに追加したキーハッシュも正しいです。 logcatを使用してキーハッシュを取ることをお勧めします。混乱しているので、コマンドラインツールには行かないでください。あなたは@ user3793589の答えを使うことができます。署名されたapkを生成し、あなたのデバイス上で実行し、logcatをチェックアウトし、リリースキーハッシュを取得します。 – LvN

0

あなたのアプリが開発中のときはいつでも、デバッグハッシュキーはFacebookブックの統合に使用されます。デバッグハッシュキーはマシン固有のものです(作業中のPC)

リリースハッシュキーはデバッグキーとは異なり、変更されません。アップロード用の署名付きapkを生成するときは、あなたのアプリとのFacebookの統合用にリリースハッシュキーを更新する必要があります。 Facebookの

のリリースハッシュキーを作成する方法についてよりよく理解するために次のコードを使用して、キーハッシュを確認することができます

読むthis

// Add code to print out the key hash 
    try { 
     String PACKAGE_NAME=getApplicationContext().getPackageName();; 
     PackageInfo info = getPackageManager().getPackageInfo(
       PACKAGE_NAME, 
       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 (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    }  
+0

ご回答いただきありがとうございます。私が指摘したように、私は正常に署名されたAPKとFacebookのハッシュキーで実行しますが、いつか私はテストのための新しいAPKファイルを生成すると、ハッシュキーはもう有効ではありません。私はそのために1台のPCしか使用しませんでした。あなたのコメントでは、新しいAPKファイルを生成するときにハッシュキーを変更できるということですね。 –

+0

@DinhThangパッケージ名を変更しましたか?またはプロジェクト名? – Arshak

+0

@DinhThang私はあなたのアプリを実行している間、logcatのキーハッシュを表示するコードを追加しました。あなたはFacebookの開発者コンソールに格納されているキーハッシュと比較し、キーハッシュが異なる場合はそれを追加することができます。 – Arshak

0

あなたが開発者のハッシュキーの両方を登録する必要があります(お使いのコンピュータに関連する)と生産ハッシュキー(署名されたバージョンに関連する)をFacebookに送ってください。 、あなたは右のキーを持っていることを確認してくださいあなたのコードでこれを実行し、出力をコピーするには :

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
       "Your package name", 
       PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      System.out.println(Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
      } 
    } catch (NameNotFoundException e) { 

    } catch (NoSuchAlgorithmException e) { 

    } 
関連する問題