• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

apk 생성 및 설치후 오류 디버깅 문의.

20.11.11 06:22 작성 조회수 963

1

안녕하세요 강사님. 좋은 강의 감사드립니다.

완강이후 강의 결과물을 apk 로 만들어서 안드로이드 폰(화웨이 mate 9, 안드로이드 9버전)에 설치를 했습니다.

며칠 고생해서 플러그인 버전들도 거의 최신버전으로 변경했고, 에뮬에서는 문제없이 동작합니다.

설치 방식은 apk 방식으로 flutter install 명령어를 이용해서 작업했습니다. 서명작업도 하였고, 번들링 작업은 잘 안되서 apk 방식으로 진행했습니다.

참고 사이트 - https://flutter.dev/docs/deployment/android

에뮬에서는 문제없이 동작하던 어플이 실제 폰에 설치를 하니, 로그인부터 되지 않고 계속 로그인화면만 보여집니다.

이런경우 어떻게 디버깅 및 오류원인을 찾을수 있을까요?

문의 드립니다.

감사합니다.

플러그인 버전은 아래와 같습니다.

  cupertino_icons: ^1.0.0
image_picker: ^0.6.7+12
firebase_auth: ^0.18.2
flutter_signin_button: ^1.1.0
google_sign_in: ^4.0.7
cloud_firestore: ^0.14.3
firebase_storage: ^4.0.1

에뮬에서 실행 및 구글 로그인 관련 로그.

Launching lib\main.dart on AOSP on IA Emulator in debug mode...
Running Gradle task 'assembleDebug'...
√ Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app.apk...
Waiting for AOSP on IA Emulator to report its views...
D/EGL_emulation(13128): eglMakeCurrent: 0xeba29560: ver 3 0 (tinfo 0xd464e640)
Debug service listening on ws://127.0.0.1:2621/f5Boq3EOJ1U=/ws
Syncing files to device AOSP on IA Emulator...
D/eglCodecCommon(13128): setVertexArrayObject: set vao to 0 (01 2
D/EGL_emulation(13128): eglMakeCurrent: 0xefd47c40: ver 3 0 (tinfo 0xe9883920)
D/eglCodecCommon(13128): setVertexArrayObject: set vao to 0 (01 0
I/flutter (13128): MyApp created
I/flutter (13128): root_page created
I/flutter (13128): You need to login(root->login page) ***************
I/flutter (13128): login_page created ********************************************
I/flutter (13128): You need to login(root->login page) ***************
I/flutter (13128): login_page created ********************************************
I/flutter (13128): You need to login(root->login page) ***************
I/flutter (13128): login_page created ********************************************
W/ActivityThread(13128): handleWindowVisibility: no activity for token android.os.BinderProxy@aec1fe0
I/lutter_firebas(13128): IncrementDisableThreadFlip blocked for 6.593ms
D/EGL_emulation(13128): eglMakeCurrent: 0xeba29560: ver 3 0 (tinfo 0xd464e640)
D/EGL_emulation(13128): eglMakeCurrent: 0xeba29560: ver 3 0 (tinfo 0xd464e640)
I/BiChannelGoogleApi(13128): [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.internal.zzao@6c91e21
D/FirebaseAuth(13128): Notifying id token listeners about user ( 2peU9Ullg6O0oNe2LDFvZi7h4by2 ).
D/FirebaseAuth(13128): Notifying auth state listeners about user ( 2peU9Ullg6O0oNe2LDFvZi7h4by2 ).
I/flutter (13128): signed in xxx KIM
======> 로그인 성공
I/flutter (13128): [login click]******************************
I/flutter (13128): [login click]******************************
I/flutter (13128): Login success(root->tab page) ***************
I/flutter (13128): home page created
======> TabPage 에서 HomePage 호출 성공

답변 4

·

답변을 작성해보세요.

2

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.11.11

네. 감사합니다. 지금 추가해보니,  두 군데에서 모두 로그인이 됩니다. ^^

1

새로 환경을 만드는게 아니라 기존 프로젝트 설정에 보면 SHA-1을 추가할 수 있는 화면이 있습니다.

여기에 기존 것 그대로 두고 새로 추가하시면 디버그시에도, 릴리즈시에도 잘 동작하게 됩니다.

1

MIKE.aeon님의 프로필

MIKE.aeon

질문자

2020.11.11

답변 감사드립니다.  강사님. 추가 문의 드립니다.

릴리즈할때 사용한 키를 가지고 릴리즈용 SHA-1을 추출하였습니다. 그러면 기존에 개발용(디버깅으로)으로 사용하던 환경을 수정해서 새로운 릴리즈용 SHA-1 입력하나요? 아니면  릴리즈용 SHA-1 새로운 환경을 만들어야하나요?

일반적으로 어떻게 개발 및 서비스를 진행하시는지 문의 드립니다.

1. 개발환경에서  SHA-1 을 릴리즈용으로 변경하면 개발수정시 사용이 불가능하고, 수정도 안되는것 같습니다.

2. 새로운 환경을 만들면 JSON 다운받아서 컴파일을 다시 작업을 해야하니,  동일한 프로젝트를 복제해서 사용하는지요? 그리고 Android package name 은 동일해도 되나요?

1

릴리즈 빌드 후 로그인이 안 되는 문제이시군요.

인증을 하기 위해 Firebase 앱 설정에 SHA-1 인증서 지문을 추가했던 것 기억하시지요?

이것은 디버그용 인증서라서 릴리즈 빌드시에는 다른 서명으로 인식되어 인증이 진행되지 않는 것입니다.

릴리즈 빌드시 사용한 signing key 의 SHA-1 인증서 지문이 추가되어야 합니다.

릴리즈 signing key 로 부터 SHA-1 인증서 추출하는 명령은 다음 페이지에 있습니다.

https://developers.google.com/android/guides/client-auth