Programing

Android에서 OAuth 2.0에 대한 서명 인증서 지문 (SHA1)을 얻는 방법은 무엇입니까?

lottogame 2020. 6. 13. 10:12
반응형

Android에서 OAuth 2.0에 대한 서명 인증서 지문 (SHA1)을 얻는 방법은 무엇입니까?


나는의 단계에 따라 내 안드로이드 응용 프로그램 등록하기 위해 노력하고있어 https://developers.google.com/console/help/#installed_applications 따라 날 리드 http://developer.android.com/tools/publishing/app-을 signing.html .

그러나 서명 인증서 지문 (SHA1)을 얻는 방법을 잘 모르겠습니다.

먼저 Eclipse ADT 플러그인을 사용하여 키 저장소 / 키를 내보내고 작성했습니다. 그런 다음 시도해 keytool -list keystore mykeystore.keystore보니 MD5 인증서 지문이 나옵니다. 서명을 다시해야합니까 (이클립스 내보내기 마법사를 사용할 수 없음을 의미 함)?

디버그 인증서를 먼저 사용할 수 있습니까?


내보내기 프로세스를 시작하여 앱용 APK를 만들고 프로덕션 키를 사용하십시오. 마지막 페이지에는 SHA1 및 MD5 인증서 지문이 모두 표시됩니다여기에 이미지 설명을 입력하십시오


이 질문에 대한 답변을 받았지만 이것이 기본 키 저장소에 대한 서명을 찾은 방법입니다. Eclipse에서 Windows-> 환경 설정-> Android-> 빌드로 이동하면

여기에 이미지 설명을 입력하십시오


나는 이것이 완벽하게 작동 할 것이라고 생각합니다. 나는 같은 것을 사용했다 :

Android Studio의 경우 :

  1. 빌드 > 서명 된 APK 생성을 클릭하십시오 .
  2. 메시지 상자가 나타나면 확인을 클릭하십시오.
  3. 이제 키 저장소 경로를 복사하는 다른 창이 나타납니다 .
  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. 이제 키 저장소 비밀번호 요청을 제공하고 키를 눌러 EnterSHA1 및 MD5 인증서 키를 얻습니다.

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

이것을 커맨드 라인에서 사용하십시오

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

열기 터미널 (에서 유닉스 에서 MAC ), ( cmd에서 윈도우 )와 cd이 (자바) 경로 :

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.keystoreMD5 및 SHA-1 지문이 모두 표시됩니다.


keytool -list -v -keystore "keyStoreName"

앱의 키 저장소가있는 디렉토리에서이 명령을 실행하십시오.


Android Studio에서 다음 단계를 수행하십시오.

  1. 안드로이드 스튜디오 IDE의 오른쪽에있는 Gradle properties 메뉴를 클릭하십시오.
  2. 작업 트리를 확장하십시오.
  3. signingReport를 클릭하십시오. 하단 콘솔에서 SHA1을 볼 수 있습니다

여기에 이미지 설명을 입력하십시오


당신이 당신의 안드로이드 응용 프로그램에서 구글 맵을 사용 하기 위해 생성 하기 위해 지문 Google Map이 필요한 시점 에 사용하려는 경우 참조하십시오 .MD5api kay

Keytool 명령은 MD5사용하면 지문 JDK 1.6을 생성하고 SHA1사용하면 지문 을 생성 합니다 JDK 1.7.

문제는 당신이 다음 게시 응용 프로그램을 서명 할 경우 읽을 수 있다는 것입니다 그래서 .

그리고 당신이 사용하려면 이것을google-map 읽으십시오 .


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
...

행운을 빕니다


안드로이드 스튜디오를 사용하는 사람이라면 ...

클릭 : 빌드> APK에서 서명 생성 새 키 생성 : ".jks"파일 생성

다음 명령을 사용하여 데이터 (SHA1 및 기타 정보)를 읽으십시오.

$ keytool -list -v -keystore 파일 이름 .jks


OpenSSL을 사용하는 사용자는 다음과 같이 SHA1 지문을 검색 할 수 있습니다.

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

결과는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


여기에 내 쉬운 해결책이 있습니다.

Gradle버튼을 클릭 하면 오른쪽 상단에서 찾을 수 있습니다. 모든 gradle 파일을 볼 수 있습니다. 이제 android로 가서 signingReport를 두 번 클릭하십시오. gradle 빌드가 완료되면 SHA 키가 표시됩니다. 단계별 가이드는 아래 이미지를 확인하십시오.

Gradle을 클릭하면 아래 이미지를 확인하십시오. 이것이 누군가를 돕기를 바랍니다.

1 단계:

이미지 1 단계

2 단계:

이미지 2 단계


Android Studio를 사용중인 경우 Gradle Tasks를 통해 SHA1 인증서 지문 (디버그, 릴리스 ... 모든 빌드 유형 !!)을 신속하게 얻을 수 있습니다 .

서명 보고서

SHA1이 메시지 로그에 표시됩니다

Android 플러그인 (gradle 앱에서 구성)은 기본적으로 디버그 모드를 만듭니다.

com.android.application

키 저장소로의 파일 경로 :

HOME / .android / debug.keystore

build.gradle에 debug.keystore를 연결하는 것이 좋습니다 . 이렇게하려면 파일 debug.keystore를 앱 폴더에 넣은 다음 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를 사용합니다)


Android Studio를 사용중인 경우 cmd 프롬프트를 사용하여 SHA1 지문을 생성 할 필요가 없습니다. Android Studio의 기본지도 활동을 사용하여 프로젝트를 만들어야합니다. 프로젝트에서 값 폴더 아래 google_maps_api.xml의 지문을 얻을 수 있습니다. 이것이 도움이되기를 바랍니다. :)

여기에 이미지 설명을 입력하십시오


이것을보십시오 : Windows ---- 환경 설정 ---- Android--build --- sh1 코드 복사


처음부터 혼란 스러웠지만 Windows 용 최종 작업 솔루션 제안합니다 .

1) Open cmd and go to your Java/jdk/bin directory (just press cd .. to go one folder back and cd NAME_FOLDER to go one folder forward), in my case, final folder: C:\Program Files\Java\jdk1.8.0_73\bin> 여기에 이미지 설명을 입력하십시오

2) Now type this command keytool -list -v -keystore C:\Users\YOUR_WINDOWS_USER\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android

As result you have to get something like this: 여기에 이미지 설명을 입력하십시오


For those on mac looking for keytool. follow these steps:

Firstly make sure to install Java JDK http://docs.oracle.com/javase/7/docs/webnotes/install/mac/mac-jdk.html

Then type this into command prompt:

/usr/libexec/java_home -v 1.7

it will spit out something like:

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

keytool is located in the same directory as javac. ie:

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

From bin directory you can use the keytool.


I think this will work perfectly. I used the same:

For Android Studio:

Click on Build > Generate Signed APK. You will get a message box, just click OK.

Now there will be another window just copy Key Store Path.

Now open a command prompt and go to C:\Program Files\Java\jdk1.6.0_39\bin> (or any installed jdk version).

Type keytool -list -v -keystore and then paste your Key Store Path (Eg. 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").

Now it will Ask Key Store Password, provide yours and press Enter to get your SHA1 and MD5 Certificate keys.

Now add this SHA1 key to the google developers console in credentials tab and also change the build variants in android studio to release mode.


If you are on Mac/Linux, then you can get SHA1 fingerprint by writing following line in the terminal:

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

There are 2 things possible after this

  1. It will ask you for the password

    Just type

android

and press enter, you can find the SHA1 key in the output shown below.

  1. It will ask you to download a suitable program (and some list will be given)

    Just type following in terminal

sudo apt install openjdk-8-jre-headless

and then again run following in terminal: keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

This time, you will be led to step 1, where you need to just enter the password as

android

and you will get your SHA1 fingerprint below in the output.


Using portecle :

  • File > Open Keystore file
  • Enter Keystore password
  • Right click on alias name > Certificate details > SHA-1 Fingerprint

Easiest way to Get SHA-1 For Release and Debug mode android studio gradle. Check this


I wanted to post a notice to those that are having the same issue as me. I went through the steps to generate my debug SHA-1 and my release SHA-1. I was attempting to connect Google Sign-In API with my app.

I ran into the issue that the debug .apk would work fine, it would connect and authenticate with Google Sign-In. My release .apk would also work, when installed manually to the phone. When I posted my release .apk to the Google play store, my google Sign-in would not authenticate and I would get an issue!

For the longest time I couldn't figure it out, but I found that my app was being signed by google, i.e., the message on the top of the Developer console was showing: Google Play App Signing is enabled for this app.

I went to my Release Management tab, then scrolled down to App Signing, and found the SHA-1 there. After adding this to my code and on "firebase console" which I was using as the backend for Google Sign-in, everything seemed to work. It looks like my release keystore was getting replaced with the google signed certificate... I'm not really sure if this is what was happening, but it resolved my issue and allowed my Google Play Store release apk to correctly authenticate with the google sign in!


Step by step solution:

  1. Open your command prompt or Terminal for Mac
  2. Change directory to directory of the keytool file location. Change directory by using command cd <directory path>. (Note: if any directory name has space then add \ between the two words. Example cd /Applications/Android\ Studio.app//Contents/jre/jdk/Contents/Home/bin/)

    • 키툴의 위치를 ​​찾으려면 android studio로 이동하십시오. 프로젝트를 엽니 다. 그리고가

    • 파일> 프로젝트 구조> SDK 위치 .. JDK 위치를 찾으십시오.

  3. 이 명령으로 keytool을 실행하십시오. keytool -list -v –keystore <your jks file path>(참고 : 디렉토리 이름에 공백이 있으면 두 단어 사이에 \를 추가하십시오. 예 keytool -list -v -keystore /Users/username/Desktop/tasmiah\ mobile/v3/jordanos.jks)

  4. 암호를 입력하라는 명령 프롬프트가 표시되면 암호를 입력하십시오. 그러면 결과가 나타납니다.


게으른 코더를위한 도구는 다음과 같습니다.

1 의존성을 추가하십시오 :

compile 'com.vk:androidsdk:1.6.9'

2 활동 / 응용 프로그램 어딘가에 다음 줄을 추가하십시오.

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

3 logcat을 열고 메시지를받습니다.

4 이익!

참고 : https://stackoverflow.com/questions/12214467/how-to-obtain-signing-certificate-fingerprint-sha1-for-oauth-2-0-on-android

반응형