[Android Google Login] release 빌드에서도 로그인이 되는데 PlayStore에서 설치하면 로그인이 안되는 건에 대하여...

이지훈·2024년 4월 2일
0
post-thumbnail

서두

제목 그대로 release 빌드를 통해 생성된 aab 파일을 핸드폰에 설치해도 로그인이 잘만되는데, 이 파일을 그대로 PlayStore에 올린 버전에선 로그인이 안되는 문제에 대해서 살펴보도록 하겠다.

문제 발생

Google Login 의 경우 대게 Firebase 의 도움을 받아 구현하면 쉽게 구현할 수 있다. 다만 debug 모드에서 로그인을 하기위해선 Firebase 프로젝트 설정에 들어가 SHA1 인증서 지문 탭에 디지털 지문 추가를 눌러 SHA1 key 를 등록해줘야 한다.

SHA1 key 가 무엇인지에 대한 설명은 이미 좋은 글이 있기 때문에 해당 글의 링크를 첨부하는 것으로 대체하도록 하겠다. [프로그래밍] SHA-1 이란 무엇인가?..🧐

그렇다면 release 모드에서는 어떻게 로그인을 할 수 있을까? 앱을 사용하는 모든 사람들의 SHA1 key를 하나하나 Firebase 에 등록 할 수는 없는 노릇이다.

때문에 구글에서는 해당 커멘드를 통해 디지털 인증 지문을 생성할 수 있는 방법을 제공한다.

keytool -list -v -keystore "${STORE_File}" -alias "${KEY_ALIAS}
  signingConfigs {
    create("release") {
      val propertiesFile = rootProject.file("keystore.properties")
      val properties = Properties()
      properties.load(propertiesFile.inputStream())
      storeFile = file(properties["STORE_FILE"] as String)
      storePassword = properties["STORE_PASSWORD"] as String
      keyAlias = properties["KEY_ALIAS"] as String
      keyPassword = properties["KEY_PASSWORD"] as String
    }
  }

release 모드를 통한 빌드를 수행할 때 다음과 같은 구성을 build.gradle.kts 에 추가했을텐데, 위에 커멘드에 keystore.properties 내에 값을 그대로 붙혀넣기 하면된다.

커멘드가 정상적으로 실행되었을 경우, STORE_PASSWORD를 입력해야 하는데, 정상적으로 입력할 경우, SHA1 key가 성공적으로 생성되고, 발급된 SHA1 key 를 Firebase 에 등록해주면, release 에서도 정상적으로 로그인이 되는 것을 확인할 수 있다.

그러나!...

release 빌드된 정상적으로 로그인이 가능했던 aab 파일을 스토어에 배포하면 로그인이 정상적으로 이뤄지지 않았다...

문제 해결

나는 해당 커멘드을 통해 디지털 인증 지문 추가함으로써, 모든 문제를 해결할 수 있다고 생각했는데(여타 다른 글들에도 그런식으로 언급되어있었다.) 내 착각이었나 보다.

Play Console 내에 설정의 하위에 앱 서명으로 들어가면, 구글에서 제공하는 MD5, SHA1, SHA256 key 들이 명시되어있는데 해당 SHA1 Key 도 별도로 Firebase 에 등록을 해야지만 스토어 버전에서도 로그인이 가능하였다.

or 이 아니라 and 조건이었다...!

참고로 다음과 같이 아직 앱의 새 버전을 출시하지 않았다면, 앱 서명에 들어가도 인증키들이 존재하지 않기 때문에, 앱의 새 버전을 성공적으로 출시하고 나서, 다시 앱서명으로 들어가, 발급된 키들을 등록해주면 되겠다.

참고)
https://stackoverflow.com/questions/36999751/google-signin-not-working-in-release-mode-apk-android

profile
실력은 고통의 총합이다. Android Developer

0개의 댓글