본문 바로가기
프로그래밍/Flutter & Dart

Release 버전(.apk)에서 구글 로그인이 되지 않을 때 대처법

by 어느덧중반 2021. 3. 25.
반응형

Debug 모드에서 테스트할 땐 잘 되던 구글 로그인이 Release를 위해 apk 설치파일로 변환 후 테스트기기에 설치하고 구글 로그인을 했을 때 이상하게 로그인이 되지 않는 현상이 발생했다.

 

사실 아직도 원천적인 원인을 알아내진 못했으나...

왜냐하면, 여러 앱들을 구글스토어에 배포해보았지만 이런 경우는 처음이었기 때문...

여튼, 본론으로 돌아가서 디버그 모드에서 빌드할 때 잘 되던 구글 로그인이!

스토어 배포를 위해 릴리즈 apk 로 떨궜을 때,(flutter build apk 명령어) 해당 설치파일을 안드로이드 폰에서 설치하고 실행하니 구글 로그인이 전혀 동작하지 않았다. 구글링을 해본 결과 해결책은 아래와 같으니 나와 같이 삽질했던 사람이라면 부디 도움을 얻고 가시길 바란다.

 

원인 : key.jks 내의 SHA-1 서명을 firebase 프로젝트 안드로이드앱 부분에 추가해주지 않아서 그렇다.

 

해결방법 : 위의 원인에서 언급했듯이 방법은 간단하다. key.jks가 있는 폴더로 이동하고 아래 명령어를 입력해서 SHA-1 서명키를 얻어내자.

keytool -list -v -keystore key.jks

 

얻어낸 이후에 firebase 프로젝트 내 안드로이드 앱서명 키를 추가하고 추가된 google-service.json 파일을 다시 다운로드받고 안드로이드 스튜디오 내의 프로젝트 > app 폴더 하위에 위치시키고 다시 flutter build apk 로 떨궈주자. 

 

 

다른 Firebase DB로 옮긴 후 테스트할 때 또 안되는 현상이 나왔다..

역시 원인은 잘 모르겠지만 ㅜ 해결방법은..

기존에 붙여두었던 google-services.json 과 현재 파일을 비교해보니 oauth_client 쪽 내용이 달랐다. (과거 데이터는 client type이 1이고 certificate_hash 정보가 들어가 있었고 현재 데이터에는 client_type이 3이고 certificate_hash 정보는 아무것도 안들어가 있었음.

      "oauth_client": [
        {
          "client_id": "1244214124214124127k5i5j23pbgbuc5s2d0e6afcnmu4m.apps.googleusercontent.com",
          "client_type": 1,
          "android_info": {
            "package_name": "com.xxx_xxxxxxx_app",
            "certificate_hash": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
          }
        }
      ],

 

기존 데이터의 내용으로 갈음하고 다시 빌드해보니 이제 정상 구글 로그인이 동작했다.

반응형

댓글