[Crashlytics] 빌드 모드 별 에러 로그 구분하기

서연주·2022년 8월 5일
0

Solution

목록 보기
7/7

*첫번째 SWMaestro 프론트엔드 챕터로 진행한 내용입니다.

진행 배경

2022.07.29 외부 테스터를 포함하여 지금까지 한 것 중에서는 제일 많은 인원을 동원한 베타 테스트 진행했다.
Crashlytics 비정상 종료 발생 통계. 7월 29일에만 비정상 종료가 137회, 비정상 종료를 겪은 사용자는 27명이다.

Crashlytics 비정상 종료 발생 통계. 각 에러 별 비정상 종료 횟수와 비정상 종료를 겪은 사용자 수가 표로 나타나있다.

오류 별 debug mode에서 발생한 횟수와 전체 오류 발생 횟수 대비 비율을 작성한 표

debug 모드에서 발생한 오류(총 69회) 제외 시 절반 이상의 오류 제외

🧃 빌드 모드 구분없이 계속 쌓이는 오류 로그
→ 정확한 오류 상황 파악, 해결 우선순위 결정에 혼란 가중

➡️  Debug 모드에서 발생한 오류는 기록되지 않도록 하자!

진행

Android

buildTypes {
        debug {
            // crashlytics 실행하지 않음
            manifestPlaceholders = [enableCrashReporting:"false"]

        }
        release {

						...

            // crashlytics 실행
            manifestPlaceholders = [enableCrashReporting:"true"]
        }
    }
<activity 
	...>
            ...

            <meta-data
                android:name="firebase_crashlytics_collection_enabled"
                android:value="${enableCrashReporting}" />

            ...
        </activity> 

꼭 태그 사이에 넣어줘야한다.

그러면 flutter run --release로 빌드하면

오류 발생 통계가 표시된 시간대별 Crahslytics dashboard

Crashlytics 오류 스택 추적 화면 중 일부

이렇게 release 모드에서 발생한 오류는 crashlytics dashboard에서 확인할 수 있고

flutter run --debug로 빌드하면 동일한 오류를 이런 형태의 콘솔로 확인할 수 있다.

iOS

<key>FirebaseCrashlyticsCollectionEnabled</key>
	<string>${ENABLE_CRASH_REPORTING}</string>

Xcode의 Build Setting에서 변수를 설정

이것도 잘 된다!!

기대 효과

이번 스프린트에서 진행할 베타 테스트에서 더 정확한 리포트를 생성하여

→ 각 오류의 심각성 파악

→ 오류 별, task 별 우선 순위 파악

→ 더 정확한 스프린트 플래닝

을 도와 다음 스프린트에서 진행할 대규모 베타 테스트를 대비하는 데에 도움이 될 것으로 예상됨.

References

Firebase Crashlytics 비정상 종료 보고서 맞춤설정 | Firebase Documentation

[Firebase Crashlytics] 안드로이드 에러 리포트 사용기

Disable Firebase Crashlytics in Android Debug Builds

iOS) Xcode Build Settings를 통한 Custom environment 구축

profile
pizz@ttang

0개의 댓글