Skip to content

[Fix] 오프라인 실행 시 업데이트 확인 실패로 스플래시에서 멈춤 #555

Description

@edv-Shin

어떤 버그인가요?

네트워크가 없는 상태로 앱을 실행하면 스플래시 화면에서 멈춥니다. 메인 화면도, 로그인 화면도 뜨지 않습니다.

어떤 상황에서 발생한 버그인가요?

  • Given: 로그인된 기기에서 앱을 완전히 종료
  • When: 비행기 모드로 앱 실행
  • Then: 스플래시가 유지되고 다음 화면으로 넘어가지 않음

라우팅이 업데이트 확인 성공 경로에만 걸려 있습니다.

  • MainActivity.onCreate()checkForUpdate()만 호출하고, performRouting()updateCheckResult 옵저버에서 실행
  • MainViewModel.checkForUpdate()onFailureTimber.e만 남기고 LiveData에 값을 넣지 않아 옵저버가 실행되지 않음
  • AppUpdateRepositoryImpl.getUpdateInfo()fetchAndActivate().await()runCatching으로 감싸고, CheckForUpdateUseCasemapCatching으로 실패를 전달
  • isLoadingproceedToContent(), navigateToLogin()에서만 false가 되고 둘 다 performRouting() 이후에 호출

예상 결과

업데이트 확인이 실패해도 라우팅이 진행되어 로딩 화면이 끝나고 다음 화면이 결정됩니다.

작업 범위

  • 업데이트 확인 실패 경로에서도 라우팅 진행 (Remote Config remote_config_defaults 기본값 활용 또는 실패 이벤트 처리, 방식은 PR에서 결정)
  • 오프라인에서 강제 업데이트 차단이 동작하지 않는 트레이드오프 명시
  • 비행기 모드 실행 시 로딩 화면이 끝나는지 확인
  • 온라인에서 선택/강제 업데이트 동작 회귀 확인

참고할만한 자료(선택)

오프라인 진입을 막는 두 번째 지점인 로그인 API와 토큰 갱신 처리는 후속 이슈로 등록합니다. 이 이슈가 먼저 해결돼야 그쪽 동작을 실기기에서 확인할 수 있습니다.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions