티스토리 뷰

반응형

개발이 완료되서 이제 배포를 하려고하는데 많은 시행착오가 있었다.

 

일단 iOS개발자로 8년간 일했기에 안드로이드 쪽은 코딩하거나 코드리딩만 해봤지

안드로이드 앱을 배포해본 적은 없어서 뭐 비슷하겠거니하고 배포전 테스트를 했는데

appbundle을 만들어서 플레이스토어 내부테스트로 테스트를 하면

Firebase Storage랑 Authentication이 작동을 안하는 문제를 발견했다.

AppCheck 를 사용하기때문에 발생하는 문제라 생각해서

 

2일동안 붙잡고 다른일도 못하고 해결하고자 했는데.. 

 

첫번째로 확인한건 Firebase에 있는 Android 앱의 SHA 인증서 지문이 틀린지부터 확인해보았다.

이유는 개발하다가 중간에 Flavor를 구축해서 dev와 prod로 나누었는데

패키지 네임이 두개로 나눠진 이유도 있고 Firebase에서 각각 다른 프로젝트에 동일한 SHA인증서 지문을 쓸수 없어서 

keystore를 두개로 나눠서 쓰고 있었다.

 

일단 확인을 해보고자

project folder/android에서 ./gradlew signingReport 를 했더니 

 

이 나왔는데 SHA1값과 SHA-256값을 확인하고 Firebase에 등록된 값과 동일한지 체크해보았는데 동일했다..

 

아 그럼 되야하는거아니냐... 근데 안되더라..

3개가 등록된 이유는 하나는 product debug용이고 하나는 앞으로 기술할 내용..

원래는 2개였는데 3개가 된 이유를 이제 기재하고자한다.

 

그래서 두번째로 확인한건 google-services.json이 문제라 생각되어

google-service.json을 확인했는데 기존에 있는 파일이랑 비교해서 업데이트해주었고

flutter build appbundle을 해서 abb파일을 만들어서 내부테스트로 올렸는데 똑같이 앱체크가 작동이 안되고

authentication도 작동을 안했다.

 

ChatGPT랑 google gemini한테도 물어봤는데 헛소리만하고 해결방법을 찾지못했다.

 

근데 결과적으로 apk만들어서 하면 또 되길래 스트레스만 쌓여가고 있던 와중 

 

play store 콘솔 메뉴중에 설정 중에 앱 서명이 또 있길래 들어가서 봤더니

MD5인증서 지문, SHA-1 인증서 지문과 SHA-256 인증서 지문 이렇게 3개가 나왔다.

설명을 보니 이 인증서를 사용하여 API 제공업체에 키를 등록하세요. 라고 적혀있는거보니 

구글 플레이스토어에서 앱을 받을땐 또 이 앱 서명키를 쓰는구나 라는 생각이 들어

Firebase에 들어가서 SHA-1인증서 SHA-256 인증서를 등록했다.

그리고 abb를 만들어서 배포하기전

이전에 배포되어있던 버전으로 앱을 켰는데 firebase storage랑 authentication이 정상적으로 작동했다..

아 내 이틀... ㅠㅠㅠㅠㅠ

firebase_option.dart 파일도 flutterfire configure로 새로 업데이트 해줬다.

그래도 뭔가 찝찝하니 google-services.json을 새로 받아서 덮어씌우고 내부테스트로 배포했더니

그래도 정상작동하는것을 확인했다.

 

iOS는 이런거 없었는데... ㅠㅠㅠㅠㅠ 어쨋든 해결하고 심사 요청 완료..!

반응형