AndroidでOAuth 2.0の署名証明書フィンガープリント(SHA1)を取得する方法


154

https://developers.google.com/console/help/#installed_applicationsの手順に従ってAndroidアプリを登録しようとしています このため、 http://developer.android.com/tools/publishing/app- signing.html

ただし、署名証明書のフィンガープリント(SHA1)を取得する方法がわかりません。

最初にEclipse ADTプラグインを使用して、キーストア/キーをエクスポートおよび作成しました。次に、試してみたところkeytool -list keystore mykeystore.keystore、MD5証明書のフィンガープリントが得られました。署名をやり直す必要がありますか(Eclipseエクスポートウィザードを使用できないことを意味します)?

最初にデバッグ証明書を使用できますか?


アプリをエクスポート/アップロードする前に、user2453771の回答を使用してください。エクスポート/アップロードした後、フレデリックnyawayaの答えを使用してください。それを覚えて、数時間の苦痛を省いてください。
SmulianJulian 2015

Linuxターミナルを使用してリリースAPKキーストアを生成する方法
Manish

1
リリースおよびデバッグモードのAndroid Studio GradleのSHA-1を取得する最も簡単な方法。これをチェック
Naeem Ibrahim 2016

回答:


174

エクスポートプロセスを開始して、アプリのapkを作成し、プロダクションキーを使用します。最後のページには、SHA1とMD5の両方の証明書のフィンガープリントが表示されますここに画像の説明を入力してください


2
MD5がlogcatに表示されます(作成中のウィンドウではありません)。
ツール

4
エクスポートプロセスを2回実行します。2ターン目に表示されます。
keybee 2013年

この方法を使用して新しいものを作成する方法はありますか?これを試みましたが、古いキーストアファイルはありますが、それは間違っていると思います(リリース証明書ではなく、デバッグ証明書が必要です)。さらに、パスワードを忘れました。> _ <ヒントがあればありがとう。
Azurespot 2014

注:.apkを完全にエクスポートする必要はありません。SHA1をコピーした後、この時点でキャンセルして、不要な.apksの作成を回避できます。
GraSim、2015年

139

この質問には回答済みですが、これがデフォルトのキーストアの署名を見つけた方法です。Eclipseで、Windows-> Preferences-> Android-> Buildに移動した場合

ここに画像の説明を入力してください


5
これが最も簡単な方法であるため、これは受け入れられる答えになるはずです。
Mustafa

3
本番のキーストアではなく、デフォルト/デバッグキーストアの場合
Frederick Nyawaya '12

3
安全な答えは@frederick nyawayaの答えです。アプリのビルドと公開のキーストアが異なる場合(これはほとんどの場合です)、マップはクライアントで機能しません。また、ご使用のコンピューターで正常に機能するため、いつこれがわかるかは神様にご確認ください。注意してください。これは簡単ですが、クライアントデバイスでマップサービスが機能しなくなる可能性があります
Tina

92

これは完璧に機能すると思います。私は同じものを使いました:

Android Studioの場合:

  1. [ ビルド] > [ 署名済みAPKを生成]をクリックします。
  2. メッセージボックスが表示されたら、[OK]をクリックします。
  3. これで、Key Store Pathをコピーするだけの別のウィンドウが表示されます。
  4. ここでコマンドプロンプトを開き、C:\ Program Files \ Java \ jdk1.6.0_39 \ bin>(またはインストールされているjdkバージョン)に移動します。
  5. keytool -list -v -keystoreと入力し、キーストアパスを貼り付けます (例:C:\ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E:\ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks」)。
  6. これで、キーストアのパスワードが要求されEnterます。キーを入力し、を押して、SHA1およびMD5証明書キーを取得します。

他のマシン経由で作成されたキーストアファイルは、上記の手順で同じキーストアファイルを持つsh1を別のマシンで取得できます
Mahendra Dabi

どうもありがとうございました
Hiren

74

MacまたはLinuxを使用している場合は、これをコピーしてターミナルアプリケーションに貼り付けるだけで、SHA1キーをすぐに取得できます。何も変更する必要はありません。

 keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

出力例:

Alias name: androiddebugkey
Creation date: 17 Feb 12
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4f3dfc69
Valid from: Fri Feb 17 15:06:17 SGT 2012 until: Sun Feb 09 15:06:17 SGT 2042
Certificate fingerprints:
     MD5:  11:10:11:11:11:11:11:11:11:11:11:11:11:11:11:11
     SHA1: 11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:11:01:11
     Signature algorithm name: SHA1withRSA
     Version: 3

@yukuの例をご覧ください。/home/desktop/././。、abc.jks、どのパスワードn all、これらすべての詳細が必要ですか?
Prabs 2015年

ありがとう。これだけが最も簡単な方法です。
Sayka

あなたは実際に私の日を救った。トンありがとう。
Karan Nagpal 2017年

keytool -list -v -keystore my-release-key.keystore
スノーベース

JKSキーストアは独自の形式を使用します。「keytool -importkeystore -srckeystore <use-existing-key-store path> / <variant-name> .keystore -destkeystore <new-key-store path> / <」を使用して業界標準形式であるPKCS12に移行することをお勧めしますバリアント名> .keystore -deststoretype pkcs12 "。
Arpit J.

68

これをコマンドラインで使用する

c:\Program Files\Java\jdk1.6.25\bin>keytool -list -v -keystore c:\you_key_here.key

1
これは、IntelliJ / Studioに移行し、Eclipse / ADTの使いやすさにアクセスできない人が増えるにつれ、最もシンプルでありながら標準的な方法だと感じました。歓声メイト!!
ヒマドリパンツ2014

なぜパスワードを要求されるのか
Abhijit Chakra

私は、アクセスが拒否されました。
sudhakar phad

59

オープン(端末のUnixで、MAC)、(cmdのWindows)とcd、これに(あなたのJava)のパス:

C:\Program Files\Java\jdk1.6.0_43\bin>

次のコマンドを実行します。

keytool -list -v -keystore C:\Users\leon\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

パスをに変更するだけでdebug.keystore、MD5とSHA-1の両方のフィンガープリントを取得できます。


40
keytool -list -v -keystore "keyStoreName"

アプリのキーストアが存在するディレクトリからこのコマンドを実行します。


これを使用して、エクスポートして公開するクライアントアプリのSHA1を取得できます。これはおそらく、Eclipseに表示されるもの、つまりデバッグキーストアとは異なります。
dannyhan12 2014

29

Android Studioで、次の手順に従います。

  1. Android Studio IDEの右側にあるGradleプロパティメニューをクリックします。
  2. タスクツリーを展開します。
  3. signingReportをクリックします下部のコンソールにSHA1が表示されます

ここに画像の説明を入力してください


13

Google Mapそのときに使用するかどうかを確認してください。AndroidアプリケーションでGoogleマップを使用するMD5ために生成するapi kayためのフィンガープリントが必要です。

KeytoolコマンドはMD5、使用するJDK 1.6とフィンガープリントを生成し、を使用するとSHA1フィンガープリントを生成しますJDK 1.7

したがって、公開用のアプリケーションに署名する場合は、こちらをお読みください。

そして、あなたが使いたいならこれをgoogle-map読んでください。


リプレイAkshayをありがとう。どうやら、他の証明書のフィンガープリントを表示するには、keytoolコマンドに-vを追加する必要があったようです。また、クライアントIDを作成するためにデバッグ証明書を使用できるようです。
アレックス

1
主に。クライアントIDの作成に関する問題を解決しました。ただし、私は一般的にOAuthを初めて使用するのであり、証明書とフィンガープリントがどのように機能するかはわかりません。証明書にはMD5とSHA1の両方のフィンガープリントがあると思いますか?keytool -list -v etcコマンドを実行すると、少なくともそれが得られます
Alex

12

IntelliJ(12+?)を使用している場合は、[ ビルド/署名済みAPIの生成 ]メニューに移動します

ポップアップを埋めた後、「キーストアパス」フィールドにデータを取得します(例:C:\ Users \ user \ Documents \ store \ store)

そしてコマンドラインで実行します:

>keytool -list -v -keystore "C:\Users\user\Documents\store\store"

....
         MD5: 11:C5:09:73:50:A4:E5:71:A2:26:13:E0:7B:CD:DD:6B
    -->  SHA1: 07:0B:0E:E8:F7:22:59:72:6A:1C:68:05:05:CF:2E:6F:59:43:48:99
         SHA256: E6:CE:DA:37:C1:18:43:C1:A3:F0:9E:8F:1A:C2:69:AF:E6:41:F7:C0:18:
1D:1D:55:5D:F0:52:6C:EE:77:84:A7
...

幸運を


12

Androidスタジオを使用している場合...

クリック:ビルド> APKで署名済みを生成新しいキーを作成:これは ".jks"ファイルを生成します

次のコマンドを使用して、データ(SHA1およびその他の情報)を読み取ります。

$ keytool -list -v -keystore filename.jks


追加のヒント:Facebookのキーハッシュを生成するコマンド$keytool -keystore filename.jks | openssl sha1 -binary | openssl base64
-MuhFred

4

OpenSSLを使用している場合は、次の方法でSHA1フィンガープリントを取得できます。

OpenSSL> dgst -sha1 my-release-key.keystore

これにより、次の出力が生成されます。

ここに画像の説明を入力してください


4

Android Studioを使用している場合。cmdプロンプトを使用してSHA1フィンガープリントを生成する必要はありません。Android StudioのデフォルトのMapsアクティビティでプロジェクトを作成する必要があります。プロジェクトでは、Valuesフォルダーの下のgoogle_maps_api.xmlでフィンガープリントを取得できます。これがお役に立てば幸いです。:)

ここに画像の説明を入力してください


4

これが私の簡単な解決策です:

ボタンをクリックするGradleと、右上に表示されます。すべてのgradleファイルが表示されます。次にandroidに移動し、signingReportをダブルクリックします。Gradleビルドが完了すると、SHAキーが表示されます。ステップバイステップガイドについては、以下の画像を確認してください。

Gradleをクリックしたら、以下の画像を確認してください。これが誰かを助けることを願っています。

ステップ1:

イメージステップ1

ステップ2:

イメージステップ2


3

Android Studioを使用している場合。Gradle Tasksを使用して、SHA1証明書のフィンガープリント(デバッグ、リリース... すべてのビルドタイプ !!)をすばやく取得できます

signingReport

SHA1はメッセージログに表示されます

Androidプラグイン(gradleアプリで設定)は、デフォルトのデバッグモードを作成します。

com.android.application

キーストアへのファイルルート:

HOME / .android / debug.keystore

build.gradleにdebug.keystoreをアタッチすることをお勧めします。これを行うには、ファイルdebug.keystoreをappフォルダーに配置してから、gradle appにSigningConfigsを追加します。

apply plugin: 'com.android.application'

    android {
        ................
        signingConfigs {
            debug {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
            release {
                storeFile file("../app/debug.keystore")
                storePassword "android"
                keyAlias "androiddebugkey"
                keyPassword "android"
            }
        }    
        ........
    }

追加:リリース用に作成したい場合は、ファイルrelease.keystoreをappフォルダーに配置します。(この例では、同じdebug.keystoreを使用しています)



3

私は初めて混乱しましたが、Windowsの最終的な解決策 を提案します

1)cmdを開き、Java / jdk / binディレクトリに移動します(この場合、押すcd ..と、1つのフォルダに戻り、cd NAME_FOLDER1つのフォルダに移動します)、私の場合、最終フォルダ:C:\Program Files\Java\jdk1.8.0_73\bin> ここに画像の説明を入力してください

2)次に、このコマンドを入力します keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

結果として、次のようなものを取得する必要があります。 ここに画像の説明を入力してください


2

これは完璧に機能すると思います。私は同じものを使いました:

Android Studioの場合:

[ビルド]> [署名済みAPKを生成]をクリックします。メッセージボックスが表示されたら、[OK]をクリックします。

これで、キーストアパスをコピーする別のウィンドウが表示されます。

ここでコマンドプロンプトを開き、C:\ Program Files \ Java \ jdk1.6.0_39 \ bin>(またはインストールされているjdkバージョン)に移動します。

keytool -list -v -keystoreと入力し、キーストアパスを貼り付けます(例:C:\ Program Files \ Java \ jdk1.6.0_39 \ bin> keytool -list -v -keystore "E:\ My Projects \ Android \ android studio \ signed apks \ Hello World \ HelloWorld.jks」)。

これで、キーストアのパスワードを要求し、パスワードを入力してEnterキーを押し、SHA1およびMD5証明書キーを取得します。

次に、このSHA1キーを認証情報タブのGoogle開発者コンソールに追加し、Android Studioのビルドバリアントをリリースモードに変更します。


キーストアのパスワードを入力できません。コマンドプロンプトに入力しましたが、パスワードは入力していません
Mahendra Dabi

パスワードは表示されません。パスワードを正しく入力してEnterキーを押すだけでキーを取得できます
Rishab Jain

君たちに感謝し、私は今の仕事を間違ったパスワードを入力したあなたに感謝
マヘンドラDabi

1

Macでkeytoolを探している人。次の手順を実行します:

まず、Java JDKを必ずインストールしてください http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

次に、これをコマンドプロンプトに入力します。

/usr/libexec/java_home -v 1.7

それは次のようなものを吐き出します:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

keytoolは次と同じディレクトリにあります javacます。つまり:

/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/bin

binディレクトリからkeytoolを使用できます。


1

Mac / Linuxを使用している場合は、ターミナルに次の行を書き込むことでSHA1フィンガープリントを取得できます。

keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

この後可能なことは2つあります

  1. パスワードを聞かれます

    入力するだけ

アンドロイド

Enterキーを押すと、以下に示す出力でSHA1キーが見つかります。

  1. 適切なプログラムをダウンロードするように求められます(いくつかのリストが表示されます)

    ターミナルで次のように入力するだけです

sudo apt install openjdk-8-jre-headless

そして、再びターミナルで以下を実行します: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

今回は、ステップ1に進みます。ここでは、パスワードを次のように入力するだけです。

アンドロイド

出力には、以下のSHA1フィンガープリントが表示されます。


0

portecleの使用:

  • ファイル>キーストアファイルを開く
  • キーストアのパスワードを入力してください
  • エイリアス名を右クリック>証明書の詳細> SHA-1フィンガープリント


0

私と同じ問題を抱えている人に通知を投稿したかったのです。デバッグSHA-1とリリースSHA-1を生成する手順を実行しました。GoogleサインインAPIをアプリに接続しようとしました。

デバッグ.apkが正常に機能し、接続してGoogleログインで認証されるという問題が発生しました。私のリリース.apkも、電話に手動でインストールすると機能します。私のリリース.apkをGoogle Playストアに投稿したときに、Googleサインインが認証されず、問題が発生しました。

長い間、それを理解することはできませんでしたが、私のアプリがGoogleによって署名されていることがわかりました。つまり、デベロッパーコンソールの上部に次のメッセージが表示されていました:このアプリではGoogle Playアプリの署名が有効になっています。

[リリース管理]タブに移動し、[アプリ署名]まで下にスクロールすると、SHA-1が見つかりました。これをコードに追加し、Googleログインのバックエンドとして使用していた「firebase console」で、すべてが機能しているように見えました。私のリリースキーストアがGoogle署名の証明書に置き換えられているようです...これが何が起こっているのか本当にわかりませんが、問題が解決し、Google PlayストアのリリースAPKがGoogle署名で正しく認証されましたに!


0

段階的なソリューション:

  1. コマンドプロンプトまたはターミナルfor Macを開きます
  2. ディレクトリをkeytoolファイルの場所のディレクトリに変更します。コマンドを使用してディレクトリを変更しcd <directory path>ます。(注:ディレクトリ名にスペースがある場合\は、2つの単語の間に追加してください。例cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/

    • キーツールの場所を見つけるには、android studio..openプロジェクトに移動します。そしてに行く

    • File> project Structure> SDK location..and find JDK location。

  3. 次のコマンドでkeytoolを実行します keytool -list -v –keystore <your jks file path>(注:ディレクトリ名にスペースがある場合は、2つの単語の間に\を追加します。例 keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks

  4. コマンドでパスワードを入力するように求められます。パスワードを入力すると、結果が表示されます。


0

レイジーコーダー用のツールです:

1依存関係を追加:

compile 'com.vk:androidsdk:1.6.9'

2アクティビティ/アプリケーションのどこかに次の行を追加します。

String[] fingerprints = VKUtil.getCertificateFingerprint(this, getPackageName()); 
Log.d("SHA1", fingerprints[0]);

3 logcatを開き、メッセージをキャッチします。

4利益!


0
  1. コマンドプロンプトを開きます
  2. 作業ディレクトリを1.8.0 / binに移動します
  3. ペースト keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
  4. パスワードを聞かれたらEnterキーを押します

0

署名されたkeystore.jksファイルからFingerprint-sha1キーを取得する場合は、ターミナルから次のコマンドを実行します。

keytool -list -v -keystore <.../path/keystore.jks>

keytool -list -v -keystore /Users/Home/Projects/Keystore/myApp_keystore.jks
Enter keystore password: 

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name:myApp_alias
Owner: CN=xxx, OU=xxx Dev, O=ZZZ, L=Dhaka, ST=Dhaka, C=BD
..........


Certificate fingerprints:
MD5:  12:10:11:12:11:11:11:11:11:11:33:11:11:11:11:11
SHA1: 11:44:11:11:55:11:17:11:11:66:11:11:88:11:11:77:11:11:01:11
.....................

0

メニューの右側からGradleをクリックし、次に:appをクリックし、次にandroidフォルダーをクリックし、そこにSigningReportファイル名が存在することをダブルクリックします。実行が始まり、しばらくするとSHA-1コードが表示されます。コードをコピーするだけです。必要な場所に貼り付けます

画像で強調表示された署名レポート

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.