본문 바로가기
프로그래밍/Android

[Android] SHA 값 구하기

by Youngs_ 2021. 11. 24.

플레이스토어에 올린 앱에서 API를 사용하기 위해서는 [구글플레이 콘솔 - 설정 - 앱무결성 - 앱서명]에 있는 SHA값을 사용하면 된다.

 

더보기

앱 번들을 사용하게 되면 우리가 직접 생성한 키는 업로드키가 되며, 해당 업로드키로 사이닝하여 aab 파일을 스토어에 등록한다. 스토어에서는 별도의 서명키 (콘솔 계정에 연결된) 를 만들어 apk 파일을 재 생성한다. 즉 사용자가 받는 apk 파일은 우리의 인증서로 서명된 것이 아니기 때문에 앱 지문도 당연히 다르게 된다. 그래서 해줘야할 일은 스토어에서 만든 별도의 서명키에 대한 지문 정보를 파이어베이스에 등록해주는 것이다.  플레이콘솔의 앱을 선택하고 출시항목의 설정 메뉴에 들어가면 앱 무결성이라는 항목이 있다. 앱 번들을 한번 이라도 업로드 (내부테스트도 가능) 한 적이 있다면, 앱 무결성 화면에 "앱 서명 키 인증서" 라는 항목이 보이고 거기에 SHA-1 인증서 지문이 있을것이다. 해당 값을 등록해주면 끝.

 

gradle을 이용해 SHA 구하기

안드로이드 스튜디오 터미널에 gradlew signingReport를 입력하면 아래와 같이 SHA 값이 나온다

더보기

아래대로 해서 되는줄 알았는데 안됐다 ㅠㅠ

세방법 다 진행해도 안되는데 뭐가문제인지..


* What went wrong:
An exception occurred applying plugin request [id: 'com.android.application']
> Failed to apply plugin 'com.android.internal.application'.
   > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
     You can try some of the following options:
       - changing the IDE settings.
       - changing the JAVA_HOME environment variable.
       - changing `org.gradle.java.home` in `gradle.properties`.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

위와같은 에러가 나온다면 gradle.properties에 아래와같은 코드를 추가하면 에러가 수정된다.

경로는 자기가 설치한 자바의 위치를 넣으면된다.

 

org.gradle.java.home=C\:\\Program Files\\Java\\jdk1.8.0_291

 

해당 방법은 You can try some of the following options의 세번째 방법을 진행한것이므로, 해당방법으로도 수정이 안된다면 첫번째와 두번째의 방법도 진행해보는것을 추천한다.

 


KeyTool 을 이용해 SHA를 구하기

 

필자는 해당 방법을 이용해 SHA 를 구했다.

cmd창을 연 후에 프로젝트가 존재하는 폴더로 이동 후에 아래 커맨드를 입력하면 디버깅용 SHA값이 나온다.

 

# 디버그용 키값 구하기, openssl이 설치되어있어야하고, 프로젝트의 cmd창에서 입력해야한다.
keytool -exportcert -alias androiddebugkey -keystore "%USERPROFILE%\.android\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl base64
# 다시 검색해보니까 이게 릴리즈용이라고 나오네 뭐지
keytool -list -v -alias <앱의 key alias> -keystore <앱의 production keystore 파일 위치>
더보기

# 디버그용
keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore

# 릴리즈용
keytool -genkey -v -keystore release_key.keystore -alias release_key -keyalg RSA -keysize 2048 -validity 36500

테스트를 할때는 디버그용 SHA를 사용 추천

KeyTool이 없다는 멘트가 나오면서 진행이 되지 않으면 KeyTool을 먼저 설치한 후에 진행한다.

 

 

댓글