본문 바로가기
  • Survival Plan
IT 이야기

Play Store 업데이트 후 signing (SHA-1)

by IT/머신러닝 엔지니어의 독서/경제/육아 공부 리치윈드 - windFlex 2020. 3. 11.

Google Play Store에 모바일 앱의 버전을 업데이트 했더니, 구글 서비스 (Firebase 및 Google Analytics)의 연결이 모두 해제가 되었다. 

아래처럼 통계지표에서 앱 연결이 모두 해제가 되어 있었다. 

 

조금 더 확인 해 보니, 구글 Play Store와는 무관하게 Firebase에서 앱의 지문(Footprint)에 해당하는 SHA-1 정보를 입력해 주어야 하는 것으로 확인 되었다. 

Firebase > 메인메뉴 > Setting (기어모양) > 프로젝트 설정

"디지털 지문을 추가" 버튼을 누르면, 역시나 디지털 지문이 없다. 

디지털 지문이 00:00 ... 으로 초기화 되어 있다.

* 디지털 지문이 바뀌었으니, 디지털 지문이 바뀌게 된 원인을 파악하자. ex) 앱 구성정보가 바뀌었거나, 앱이름/등록정보 등...

 

 

디지털 지문을 생성하여 추가해 주도록 하자. 기본을 SHA-1 으로 하고 있으니, SHA-1을 생성해 보자

디지털 지문은 gradlew의 signingRepot 에서 생성할 수 있다. 

더보기

* 참고 : 여기에서 디지털 지문은 어플리케이션의 Hash값을 의미한다. Hash는 1bit 만 바뀌어도 변경되는 값을 산출한다.  즉, 내가 지칭하는 어플리케이션이 동일한지 해쉬값을 통하여 비교하는 것이다. (*MD5등 해쉬충돌은 여기서 논외로 하자)

* 어플리케이션 자체에 Hashing 을 한다면, 앱을 조금만 수정해도 동일앱으로 인정 받을 수 없다. 따라서, 앱 자체에 대한 Hashing 보다는 앱구성 정보를 담고 있는 것에대한 Hashing으로 처리할 것이다. 

 

 

안드로이드 프로젝트에 메인 디렉토리에 가서 ./gradlew signingReport 를 실행하면 된다. 

React-native의 경우, 최상위 폴더가 android/ 가 아니므로 다음 명령을 실행하면 된다. 

cd android && ./gradlew signingReport && cd ..

명령어를 실행하면 다수의 사이닝키 정보들이 출력될 것이다. yarn으로 추가한 native module들에 대한 사이닝 레포트도 출력이 된다. 

이 중에서 가장 상위쯤(필자는 위에서 3번째에 출력되었다.), Variant Release에 해당하는 SHA1 값을 복사하도록 하자. Relase가 아니라 ReleaseUnitTest 도 존재하므로 혼동하지 말기를 바란다.

(SHA256을 선택하는 것은 자율 선택 이다.)

 

댓글1