web-dev-qa-db-ja.com

Android SHA1リリースキーストアがGoogleマップで機能しない

GoogleマップAndroid AP​​Iを使用していますが、いくつかの問題に直面しています。

Android studio(.Android/keystore.jksで作成)でapkに署名しています。また、タイプとして「リリース」を選択しています。コマンドを使用しました

keytool -list -v -keystore C:\Users\Toshiba\.Android\keystore.jks

キーストアからSHA1フィンガープリントを取得します。

SHA1は正しいが、マップは署名済みAPKに表示されません。デバッグAPKに表示されます。

リリースキーストア(keystore.jks)でkeytoolを使用すると、次のようになります。

 SHA1: 33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX

デバッグ1は正常に動作します(GoogleのAPIコンソールに2を追加しました)

33:46:07:82:5B:D4:45:D2:60:CE:5A:29:97:9F:6C:44:XX:XX:XX:XX;yac.breakingpoint
7C:28:61:5B:C3:4A:5C:50:44:AA:FD:58:69:E9:70:91:XX:XX:XX:XX;yac.breakingpoint

XXは黒く塗りつぶされています。

Keytoolは、デバッグとストアキーストアの両方の署名アルゴリズムとしてSHA256withRSAを使用していると言います。

私は何を間違えていますか?

[〜#〜] update [〜#〜]だから、新しいAPIキーを試してみて、プロジェクトをクリーンアップして再構築しました。新しいキーストア-リリースにはまだ取り組んでいません...デバッグは大丈夫です!

PDATE 2それでも有効なソリューションが見つかりません...助けてください!

更新わかりました、ビルドタイプデバッグで署名されたAPKを使用して動作しました。 CERT.RSAを抽出し、keytool -printcert -file ./CERT.SAを実行しました。リリースビルドタイプと同じ結果になりました。リリースでは機能していません!

PDATE 4ここに私が行った別の試みがあります:

  • 新しいGITリポジトリを作成し、コミットしました。
  • /buildfoldersは.gitignoreファイル内にあるため、コミットされていません。
  • APIコンソールで新しいAPIキーを作成し、release SHA1キーのみを追加しました。
  • そのAPIキーをアプリに追加し、再構築で完全にクリーンにしました。
  • 新しい署名済みAPKファイルを生成しました

それは動かなかった。

更新5私の友人がこの問題を再現しようとしました。彼はAndroidスタジオで作業するときにまったく同じ問題を抱えています。おそらくAndroidスタジオのバグですか?

30
amahrt

2つのgoogle_maps_api.xmlファイルがあります

このフォルダー内の1つ:

app/src/デバッグ/res/values

このフォルダー内のその他:

app/src/リリース/res/values

ただし、おそらくデバッグキーのみにAPIキーが含まれています。

72
suhaig

1)通常、プロジェクトが正常に機能するように、プロジェクトをクリーンおよびリビルドする必要があります。

2)ビルドバリアントがリリースされていることを確認します(Android Studioはこの点で使いやすいです)

3)また、デバイスでデバッグしている場合は、最初に完全にアンインストールしてから続行します。

4) documentation にあるように、マニフェストが正しく設定されていることを確認してください。

それが役に立てば幸い。

3
Joel

現在デバッグ目的で使用しているSHA1。

そのため、署名済みapkを作成する場合、kestoreファイルが1つあります。この新しいkeaystoreファイルで新しいSHA1キーを生成してください。

次に、このキーストアファイルを使用して、Googleコンソールから署名済みapkのAPIキーを作成します。

マニフェストファイルに既に保存されているデバッグAPIキーを新しいものに置き換えます。

それが動作します

ありがとう

1
Arun Antoney

Android Studio with Google map Activity。でプロジェクトを作成します。プロジェクトがマニフェストにSHA1を自動的に作成した後。このSHA1を使用してMAP APIキーを取得します。アプリが動作することをテストします。どのプロジェクトにアプリを使用します。

0
ArmDroid