Android StudioでデバッグモードのSHA-1フィンガープリント証明書を取得するにはどうすればよいですか?


493

EclipseからAndroid Studioに移行しました。今、私は自分のマップアプリで作業しようとしています。そのため、私のSHA-1指紋証明書番号が必要です。

私がEclipseを使用していたとき、それはWindows- > Preferences-> Android-> Buildの下にありました。しかし、Android Studioでは、このようなオプションを見つけることができなかったため、指紋を簡単に見つけることができました。Windowsを使用しています。私はこのリンクからそれを読んだ:

Android Studioは、IDEからプロジェクトを実行またはデバッグするときに、アプリをデバッグモードで自動的に署名します。

そのため、このリンクからJava binパスを設定した後、コマンドラインでこれを実行しようとしましたが、残念ながら指紋を見つけることができませんでした。それは違法なオプションだと言っています

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Eclipseで非常に簡単だったように、Android StudioからSHA-1フィンガープリントを見つける方法はありますか?私はAndroid Studioの初心者ですが、それを見つけるための完全なプロセスは何ですか?

追加したいもう1つのことは、EclipseでSHA-1フィンガープリントを生成し、以前にGoogleデベロッパーコンソールでそのフィンガープリントにアプリを登録し、EclipseでそのAPIキーを使用してそのアプリで作業したことです。Android Studioのこのプロジェクトで同じAPIキーを使用できますか?


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

回答:


1255

これまでで最も簡単な方法:

最後のステップでAndroid Studio V 2.2に追加されたアップデート

これを行うには2つの方法があります。

1.より速い方法

  1. Android Studioを開く
  2. プロジェクトを開く
  3. Gradleをクリックします(右側のパネルから、Gradle Barが表示されます)
  4. 最新の情報に更新をクリックして(から最新の情報に更新をクリックしてGradleのバー、次のように表示されますリストあなたのプロジェクトのGradleのスクリプトを)
  5. プロジェクトをクリックします(プロジェクト名フォームリスト(ルート))
  6. タスクをクリックします
  7. Androidをクリックします
  8. signingReportをダブルクリックします(実行バーにSHA1MD5が表示さます(Gradleコンソールに表示される場合もあります))。
  9. 選択し、アプリからのモジュールモジュールの選択ドロップダウンアプリケーションを実行またはデバッグします

以下のスクリーンショットを確認してください:

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

2. Googleマップアクティビティを使用する

  1. Android Studioを開く
  2. プロジェクトを開く
  3. [ ファイル ]メニューをクリック-> [ 新規選択]-> [ Googleをクリック] -> [ Googleマップのアクティビティを選択]
  4. ダイアログが表示されます-> [ 完了 ]をクリックします
  5. Androidのメーカーは、自動的に生成するXMLのファイルの名前とをgoogle_maps_api.xml
  6. ここでデバッグSHA1キーを取得します(XMLファイルの行番号10

以下のスクリーンショットを確認してください:

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

Android Studio V 2.2アップデート

実行に問題があります。

解決:

  • 実行バーからタスクの実行/テキストモードの切り替えをクリックします

以下のスクリーンショットを確認してください:

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

できました。


6
すばらしいですが、Google Developer ConsoleでこのSHA1(説明どおりに作成)を使用して、アプリケーションの認証情報を作成できますか?(Signing Report)ウィンドウに(config:debug)release modeではないので?
Ashraf Alshahawy 2016年

2
コマンドラインを使用しないでそれを見つける方法があると便利です。
Androidcoder 2016年

2
私は私の.androidフォルダーにdebug.keystoreを見つけることができなかったので、これは完璧に機能します。@ HirenPatel
Manny265

2
キーストアのリリースSHA1については、stackoverflow.com
questions / 15727912 /…

12
Android Studio 2.2以降では、実行されずにGradleコンソールに表示されます
adsamcik

296

私の問題は、Google MapsプロジェクトをEclipseからAndroid Studioに移行したのと同じです。私はこれに従って私の問題を解決しました:

次のコマンドでJava binディレクトリに移動します。

C:\Program Files\Java\jdk1.7.0_71\bin>

次に、コマンドウィンドウ(CMD.EXE)に次のコマンドを入力します。

keytool -list -v -keystore c:\users\your_user_name\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

例:

keytool -list -v -keystore c:\users\James\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

または、ユーザー名がわからない場合は、これをcmdに書き込むことができます。

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

そして、あなたはSHA1を取得します。

次に、パッケージ名が変更されたため、https://code.google.com/apis/consoleから新しいキーを作成し、このキーをアプリケーションで使用しました。正常に動作します。

jdkX.X.X_XX(私のフォルダー名はjdk1.7.0_71)のBINフォルダーにいることを確認します。それ以外の場合は、Javaフォルダーを開いて、どのフォルダー名かわからない場合は、次のように表示されます。フォルダー名は何ですか。ただし、BINフォルダーに移動してから、このコマンドを実行する必要があります。今日、上記の手順でcmdコマンドウィンドウにSHA1値を取得しました。

スナップショット:

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


1
keytool -list -v -keystore "%USERPROFILE%\。android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android自分のユーザー名を入力する代わりに

はい、ただし「keytool -list -v -keystore "%USERPROFILE%\。android \ debug.keystore" -alias androiddebugkey -storepass android -keypass android」は、スタックオーバーフローの多くの例ですでに表示されています...別の例を挙げましょう。
Jamil

1
CMDからSHA1をコピーできなかったため> output.txt、コマンドの後ろに次を追加して、指定したコマンドの出力全体をファイルに移動しました。| clipコマンドの後ろに追加することもできます。Windowsクリップボードにコマンドの出力が表示されます。他の人の時間も節約できるといいのですが。 使用に関する詳細情報| クリップ
Sjoerd Pottuit 2016年

1
@SPottuit:の興味深いヒント、clip.exeそれが存在したことを知らない、ありがとう。また、削除する-vと、SHA1のみが出力として得られます。Windowsでは、出力を-vからパイプで| find "SHA1" | clip
送る

131

Macの場合、これは完全に機能しました。

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

私も大丈夫
Ranjith Kumar

112

Android StudioでSHA-1を取得するケースを見つけました。

  1. パッケージをクリックし、[ 新規] -> [ Google] -> [ Googleマップアクティビティ]を選択します。
  2. Android Studioはgoogle_maps_api.xmlにリダイレクトします

そして、あなたはあなたが得る必要があるすべてを見るでしょうgoogle_maps_key

画像


1
私はSha1を見つけましたが、プロジェクトを失敗させ、「エラー:外部システムでの作業中に例外:」と表示され、プロジェクトのすべての構造を変更しました。無料で!!! 取り戻す方法はないと思います。
user3050757 2015年

41

Android用のSHA-1キーを生成するための最良のソリューションは、Android Studioからです。

右端のGradleをクリックします。

更新アイコンをクリックすると、アプリの名前が表示されます。

[ タスク] -> [ レポート] -> [ 署名レポート]をクリックします

コンソールの下部にあるSHA-1キーを見つけます。


これありがとう!他の代替案はどれも機能しませんでしたが、これはとにかく実際にはさらに簡単でした。
ケブマン2017年

本当にありがとうバディ!
Hanish Sharma、2017

Android 3.1.4の場合:タスク-> android-> signingReport
Mete

ベストアンサー
Nurseyit Tursunkulov

36

【2017年更新】

ステップ1:Android Studioの右上にあるGradleオプションをクリックします。

Android Studio Click On Gradleオプション

ステップ2:

-[更新]をクリックします(Gradleバーから[更新]をクリックすると、プロジェクトのリストGradleスクリプトが表示されます)

-プロジェクトをクリックします(プロジェクト名フォームリスト(ルート))

-タスクをクリックします

-Androidをクリックします

-signingReportをダブルクリックします(Gradle Console / Run BarにSHA1とMD5が表示されます)

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

ステップ3:Android Studioの下部にあるGradle Consoleオプションをクリックして、SHA1キーを確認します。

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

ステップ4: SHAキーを取得しましたが、プロジェクトを実行できません。そのため、構成をアプリモードに変更します。下の画像を参照してください。

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

このような。

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

ステップ5:ハッピーコーディング!!



20

LinuxおよびMacの場合

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

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

@prabs、私はあなたを得ることができません。もう少し説明してもらえますか?
Vicky、2015

@vickyそれを実行する前にコマンドを編集する必要がありますか?はいの場合、どの詳細を指定する必要がありますか。それが私の質問です。
Prabs

1
@prabs、デバッグキーの追加情報を指定する必要はありません。Linuxターミナルで上記のコマンドを実行するだけです。
Vicky

14
  1. 右ペインのGradleアイコンをクリックします。
  2. ルートプロジェクト名をクリックします。
  3. タスクをクリックします
  4. Androidをクリックします
  5. signingReportをクリックします
  6. 実行レポートが表示される下部ペイン
  7. 「タスク実行/テキストモードの切り替え」をクリックします
  8. あなたはsha-1を見ることができます

Android Studio SHA-1


1
ありがとう。うまくいきました。/ i切り替えなければならないことを知りませんでした。
ラウル

12

私はこのようにしました:

手順1:このフォルダーに移動する

On Mac: /Users/<username>/.android/

On Windows: C:\Documents and Settings\<username>\.android\

On Linux: ~/.android/

手順2:次のコマンドラインを実行します。

keytool -list -v -keystore debug.keystore -storepass android

SHA-1キーが表示されます。


/Users/<username>Macはユーザーのホームフォルダーなので、~ショートカットは次のように使用できますLinux
user28434

ご協力ありがとうございます。
Aoun

11

端末を使用してMacから次のコマンドを直接使用しました。SHA1フィンガーを取得しました。これはコマンドです:

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

これはWindowsでも機能し、cmdも次のようになります。keytool -list -v -keystore%USERPROFILE%\。android \ debug.keystore -alias androiddebugkey -storepass android -keypass android
Hanuman

9

本番キーストアのSHA1を取得するには:

  1. ビルド->署名済みAPKを生成...

  2. パスワードでキーストアを作成し、手順に従ってください

  3. Mac /ライブラリ/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/binに移動し、cdコマンドの後にbinフォルダーをターミナルにドラッグしてポイントし、keytoolツールを使用できるようにします。したがって、ターミナルで書き込みcd(ここでビンをドラッグ)してから、Enterキーを押します。

  4. 次に、これをコピーしてターミナルに貼り付けます。

    keytool -exportcert -alias Your_keystore_AliasName -keystore /Users/Home/Development/AndroidStudioProjects/YoutubeApp/app/YoutubeApp_keystore.jks -list -v
    

    パスを消去して、キーストアを保存した場所に移動し、キーストーンをドラッグ-keystoreしてコマンドラインにドロップすると、パスが作成されます。

    また、Your_keystore_AliaseNameを消去して、作成時に使用したエイリアスキーストーン名を入れます。

  5. を押しEnterてパスワードを入力してください:)

  6. パスワードを入力しても、ターミナルはキーボードエントリを受信したことを表示しませんが、実際には受信します。そのためEnter、パスワードを入力し、パスワードが入力されていない場合でも、パスワードを入力して押します。


あなたは私のTHANK SO MUCH賞を受賞しましたWhen you enter the password, the terminal won't show that it receives keyboard entries, but it actually does
ファリッド

7

それは非常に非常に簡単です GNU / Linuxの - マック - Windowsの

最初: -このコマンドをコピーします

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

第二:今すぐターミナルでコマンドをコピーして貼り付けるAndroidのメーカー ここに画像の説明を入力してください

結果!

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

幸運を!!


7

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

signingReport

SHA-1およびMD5証明書はメッセージログに表示されます

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

com.android.application

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

HOME/.android/debug.keystore

私はすることをお勧めします 取り付け debug.keystorebuild.gradle。これを行うには、ファイルをdebug.keystoreappフォルダーに配置してから、Gradleアプリに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アプリフォルダーに配置します。(この例では同じを使用していdebug.keystoreます。)


1
私はあなたが上で言ったことをしましたが、リリースSHA1を取得しません。リリースの場合、それは私を返します:バリアント:リリース構成:なし
Ashraf Alshahawy

メニューAndroidStudio:署名済みAPKをビルド/生成し、新しいファイルを作成します。変更後、signingConfig> release on build.gradle(上記)
SergioLucas

6

あなたが持っている場合はAndroidのメーカーが、それは非常に非常に簡単です。Android Studioを使用してMapActivityを作成し、作成後にgoogle_maps_api.xmlに移動します。そこにコメントで与えられたリンクがあります。ブラウザーに貼り付けると、いくつかの詳細を入力するよう求められ、その後APIが生成されます。keytoolなどを使用する必要はありません。

スクリーンショット:

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


ただし、これはデバッグでのみ機能します。リリースキーのフィンガープリントを手動で決定する必要があります。
Hyndrix、2015年

@Hyndrixどのようにしてリリースキーのフィンガープリントを手動で決定しますか?
マイクロ

これは完全に不必要なステップです。このためだけにMapActivityを作成する必要はありません。Gradle Projects> app> Tasks> android> signingReportsを確認し、SHA1の下のGradleコンソールで結果を確認するだけです。
ケブマン2017年

5

これは私の場合に機能しました:このパスに保存されているパス.keystoreファイルを自動的に与える代わりに%USERPROFILE%を使用しますC:Users / user name / .android

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

5

簡単なコマンドを使用します。

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

SHA1キーを取得します。


4

以下のためのWindows 10から、Androidのスタジオターミナル:

keytool -exportcert -alias androiddebugkey -keystore %USER_PROFILE%"/.android/debug.keystore -list -v

注:の場合、debug.keystoreパスワードは「android」です。デバッグキーストアは通常、にあります"%USER_PROFILE%"/.android/debug.keystore


4

Softcoderからの回答に1つ追加したいと思います。一部の人がでdebug.keystoreパスを正しく指定できないことを確認しましたcommand line。彼らは、上記で受け入れられた正確なプロセスを実行していることを確認しましたが、機能していません。その時点で、debug.keystoreをドラッグしてコマンドラインにドロップしてみます。受け入れられた回答がうまくいかない場合に役立ちます。すべてのプロセスをためらうことなく実行してください。いい答えでした。


4

Android Studioを使用してMD5、SHA-1フィンガープリントを見つける非常に簡単なプロセスを見つけました。

  1. プロジェクトを実行する
  2. Gradleメニューに移動します(メニュー:[表示]-> [ツールウィンドウ]-> [Gradle])。
  3. Gradleウィンドウの「signingReport」に移動します。(あなたのプロジェクト->タスク-> android-> signingReport)
  4. それを実行します。(ダブルクリックまたはCtrl + Shift + F10を使用)
  5. 実行ウィンドウでは、すべての情報が見つかります。

デバッグモードでのみ機能します。Realeaseモードでは、sha-1が表示されません。ここの結果gradlew signingReport

Variant: release
Config: none
----------
Variant: releaseUnitTest
Config: none
----------
Variant: debug
Config: debug
Store: path\Android\avd\.android\debug.keystore
Alias: AndroidDebugKey
MD5: xx:xx:xx:62:86:B7:9C:BC:FB:AD:C8:C6:64:69:xx:xx
SHA1: xx:xx:xx:xx:0F:B0:82:86:1D:14:0D:AF:67:99:58:1A:01:xx:xx:xx
Valid until: Friday, July 19, 2047
----------

したがって、sha-1を取得するにはkeytoolを使用する必要があります。ここに公式のFirebaseドキュメント:

Get_sha-1_for_release


3

右側のパネルのGradleアイコンをクリックし、次に(ルート)をクリックします。

タスク> Android> signingReport

次に、Gradleスクリプトが実行され、キーが表示されます。


3

簡単です。スプラッシュ画面でこのメソッドを呼び出します:hash()とgetCertificateSHA1Fingerprint()、そしてキーはログに表示されます

private void hash() {


            PackageInfo info;
            try {

                info = getPackageManager().getPackageInfo(
                        this.getPackageName(), PackageManager.GET_SIGNATURES);

                for (android.content.pm.Signature signature : info.signatures) {
                    MessageDigest md;
                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    Log.e("sagar sha key", md.toString());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("sagar Hash key", something);
                    System.out.println("Hash key" + something);
                }

            } catch (PackageManager.NameNotFoundException e1) {
                Log.e("name not found", e1.toString());
            } catch (NoSuchAlgorithmException e) {
                Log.e("no such an algorithm", e.toString());
            } catch (Exception e) {
                Log.e("exception", e.toString());
            }
        }

        private void getCertificateSHA1Fingerprint() {
            PackageManager pm = this.getPackageManager();
            String packageName = this.getPackageName();
            int flags = PackageManager.GET_SIGNATURES;
            PackageInfo packageInfo = null;
            try {
                packageInfo = pm.getPackageInfo(packageName, flags);
            } catch (PackageManager.NameNotFoundException e) {
                e.printStackTrace();
            }
            Signature[] signatures = packageInfo.signatures;
            byte[] cert = signatures[0].toByteArray();
            InputStream input = new ByteArrayInputStream(cert);
            CertificateFactory cf = null;
            try {
                cf = CertificateFactory.getInstance("X509");
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            X509Certificate c = null;
            try {
                c = (X509Certificate) cf.generateCertificate(input);
            } catch (CertificateException e) {
                e.printStackTrace();
            }
            String hexString = "";
            try {
                MessageDigest md = MessageDigest.getInstance("SHA1");
                byte[] publicKey = md.digest(c.getEncoded());
                Log.e("sagar SHA",byte2HexFormatted(publicKey));
            } catch (NoSuchAlgorithmException e1) {
                e1.printStackTrace();
            } catch (CertificateEncodingException e) {
                e.printStackTrace();
            }
        }

        public static String byte2HexFormatted(byte[] arr) {
            StringBuilder str = new StringBuilder(arr.length * 2);
            for (int i = 0; i < arr.length; i++) {
                String h = Integer.toHexString(arr[i]);
                int l = h.length();
                if (l == 1) h = "0" + h;
                if (l > 2) h = h.substring(l - 2, l);
                str.append(h.toUpperCase());
                if (i < (arr.length - 1)) str.append(':');
            }
            return str.toString();
        }

ありがとうございました。


2

keytoolを使用してAPI Managerの指示を使用します。

AndroidManifest.xmlファイルからパッケージ名を取得します。次に、次のコマンドを使用してフィンガープリントを取得します。

keytool -list -v -keystore mystore.keystore


1

次のコマンドを使用して、システム名でAJAY SUNDRIYALを変更できます。これは、debug.keystore専用です。これでうまくいきます。

C:\Program Files\Java\jdk1.8.0_91\bin>keytool -list -v -keystore "c:\users\AJAY SUNDRIYAL\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

1

これは私のために働きました:

keytool -exportcert -alias androiddebugkey -keystore

ここにC:\ users \ youruser.android \ debug.keystore -list -vのように、debug-or-production-keystoreへのパスを入力します

Java\jdk*\binコマンドウィンドウまたはターミナルウィンドウのディレクトリにいることを確認してください。

次に、パスワードとしてAndroidを使用します。

Webリソースが誤解を招くことがあります。これらは働いているものです:


1

キーストアのパスは二重引用符で囲みます。正常に動作しています。

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


1

Android Studio V 1.5.1で新しい「Googleマッププロジェクト」を作成すると、最後の画面でgoogle_maps_api.xmlファイルが開き、次のような手順で画面が表示されます。

リソース:

TODO:アプリケーションを実行する前に、Google Maps APIキーが必要です。

取得するには、このリンクをたどり、指示に従い、最後にある[作成]をクリックします。

https://console.developers.google.com/flows/enableapi?apiid=maps_android_backend&keyType=CLIENT_SIDE_ANDROID&r= YOUR SHA-1 + YOUR PACKAGE NAME

次の行を使用して、既存のキーに認証情報を追加することもできます:
YOUR SHA-1:YOUR PACKAGE NAME

または、こちらの指示に従ってください:https :
//developers.google.com/maps/documentation/android/start#get-key

キーを取得したら(「AIza」で始まります)、このファイルの「google_maps_key」文字列を置き換えます。
<string name="google_maps_key" templateMergeStrategy="preserve" translatable="false">YOUR GOOGLE MAPS KEY</string>

Googleマップキーを取得するには、ブラウザに表示されたURLリンクを切り取って貼り付け、新しいアプリケーションを作成するときに上記の手順に従います。SHA-1そしてPackage namesあなたがそれらを知っている必要はありませんので、与えられたリンクに既にあります。ただしresources>Values>google_maps_api.xml、プロジェクトの作成に関する指示に従うと完成するファイル内のプロジェクトに含まれます。


1
  • [ファイル]> [プロジェクト構造の選択] appまたはmobile名前を付けた名前に移動します。Modules

  • Signingタブを選択します。

  • +ボタンをクリックして証明書を追加できます。


例を挙げて詳細な手順を教えていただけませんか?
Setu Kumar Basak 14

0

指紋を取得する最も簡単な方法は、ドロップダウンをクリックして[ビルド]をクリックして、アプリから署名付きレポートに切り替えることです。

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

次に、デバッグレポートとスタックトレースが表示されている下部のペインで、sha1フィンガープリントを確認できます。注意:デバイスまたはエミュレーターでアプリを実行する場合は、必ずアプリに切り替えてください。


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