안녕하세요~ 챠니입니다! :)
이번에는 Firebase에서 제공하는 Crashlytics에 대해서 알아보겟습니다.
Firebase Crashlytics란?
Firebase Console에서 포괄적인 비정상 종료 보고서를 확인하는 방법을 설명합니다. Android용 Crashlytics를 사용하면 비정상 종료, 심가하지 않은 오류, '애플리케이션 응답 없음'(ANR) 오류에 관한 보고서를 받을 수 있다.
자세한 내용은 Firebase Documentation을 참고하시길 바랍니다.
https://firebase.google.com/docs/crashlytics/get-started?hl=ko&platform=android
Crashlytics 사용방법
먼저 Crashlytics를 사용하기 위해서 Firebase 프로젝트 생성 및 Android Application 등록을 해야합니다.
Firebase에 대해서 아무것도 모르는 분들은 아래글을 참고하여 진행 후 Crashlytics를 설정하시길 바랍니다.
1. Firebase 프로젝트 생성 및 Android Application 등록
1-1. Firebase 프로젝트 추가방법: https://minchanyoun.tistory.com/106
1-2. Firebase Android App 등록방법: https://minchanyoun.tistory.com/107
2. Android Project - Firebase Crashlytics 설정
먼저 Firebase Crashlytics의 메인페이지는 다음과 같습니다.
앱의 모든 설정이 다 끝나고 빌드를 하게되면 조금 변경이 된다는 점을 기억하면 서 프로젝트 셋팅에 대해서 알아보겠습니다.
Firebase Crashlytics 설정은 간단히 몇가지 추가로 사용가능하니 힘들다고 놓치지말고 따라오세요!
[1. Build.gradle (:app)]
1-1. plugins 부분에 추가
id 'com.google.firebase.crashlytics'
id 'com.google.gms.google-services'
1-2. dependdencies 부분에 추가
// Firebase 플랫폼용 BoM가져오기
implementation platform('com.google.firebase:firebase-bom:29.2.1')
// Crashlytics 및 Analytics 라이브러리에 대한 종속성 선언
// BoM을 사용할 때 Firebase 라이브러리 종속성에 버전을 지정하지 않음
implementation 'com.google.firebase:firebase-crashlytics-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'
[2. Build.gradle (Project: ${ProjectName})]
2-1. buildscript 부분
buildscript {
repositories {
// Check that you have Google's Maven repository (if not, add it).
google()
}
dependencies {
// Check that you have the Google services Gradle plugin v4.3.2 or later
// (if not, add it).
classpath 'com.google.gms:google-services:4.3.10'
// Add the Crashlytics Gradle plugin
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
}
}
[AndroidProject - 강제 런타임오류 발생 코드 추가]
ViewBinding을 통해 tvException을 클릭 했을 때, RuntimeExeption오류를 발생하도록 코드를 추가하였습니다.
- 여기까지 따라오셨다면 프로젝트를 빌드해보겠습니다.
빌드된 프로젝트는 다음과 같습니다.
- 레이아웃에서 보이는 버튼은 위에서 RuntimeException을 동작하는 tvException 입니다.
- 버튼을 클릭하면 강제 RuntimeException이 동작 하겠죠??
제대로 설정이 되었고 빌드가 되었다면 다음과 같은 모습이 나오게 됩니다.
Crashlytics를 설정하기 전과는 다른 페이지의 모습을 볼 수 있습니다.
Crashlytics가 AndroidProject에 제대로 설정이 되었다면
아래문구처럼 "앱이 감지되었으며 비정상 종료를 기다리는 중입니다. 도움이 필요하신가요? 테스트 비정상 종료를 추가하는 방법 알아보기" 나타나게 됩니다.
--------------------------------------------------------------------------------------------------------------
여기까지 잘 따라오셨다면 이제는 RuntimeException을 강제로 발생 시켜 Firebase Crashlytics에 잘 표시가 되는지 확인해 보도록 하겠습니다.
먼저 위에사진처럼 우선 정상적으로 동작하는 Android Application에서
아래사진은 버튼을 클릭하여 RuntimeException이 동작하여 강제로 앱이 종료된 모습입니다.
RuntimeException이 제대로 동작했다면 - Firebase Crashlytics 홈페이지로 이동해 보겠습니다.
전에 비정상 종료를 기다리는 페이지는 없어지고 "비정상 종료 미발생 통계"에 대한 페이지로 변경된 것을 확인할 수 있습니다.
해당페이지에서 어떤 Activity에서 종료가 되었고, 어떤 문제점으로 인해서 종료가 되었는지에 대한 부분을 자세하게 확인 할 수 있습니다.
지금까지 Firebase Crashlytics에 대해서 알아보았습니다.
Crashlytics를 활용하여 앱을 배포한다면 사용자가 앱을 사용하면서 발생되는 비정상종료에 대한 장애를 자세하게 확인하여 개발자들이 편하게 수정을 할 수 있는 통계자료를 제공 될 수 있습니다.
글 정리 & 소스코드
[필요자료]
1-1. Firebase 프로젝트 추가방법: https://minchanyoun.tistory.com/106
1-2. Firebase Android App 등록방법: https://minchanyoun.tistory.com/107
[소스코드]
Crashlytics전체 코드: https://github.com/younminchan/kotlin-study/tree/main/Crashlytics_kotlin
질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!
응원의 댓글은 저에게 큰 힘이 된답니다! :)
즐거운 하루되세요!
깃허브 보러 놀러오세요 👇 (맞팔환영)
https://github.com/younminchan
'🖥 Programming > 📱 Android (Kotlin)' 카테고리의 다른 글
[Android] Execution failed for task ':app:signReleaseBundle'. / Cannot recover key 오류 및 해결방법 (0) | 2022.04.07 |
---|---|
[Android] Execution failed for task ':app:processDebugGoogleServices'. 오류 해 (0) | 2022.03.31 |
[Android][kotlin] 진동 울리기 (0) | 2022.03.29 |
[Android][kotlin] 코드로 가로, 세로회전 처리하기 (0) | 2022.03.29 |
[Android][kotlin] Firebase Android App 등록방법 (0) | 2022.03.24 |
[Android] Firebase 프로젝트 추가방법 (0) | 2022.03.24 |
[Android][kotlin] 상단 바[타이틀(Title), 바(Bar) , 탭(Tab)] 없애기 (0) | 2022.03.16 |
[Android][kotlin] Firebase DynamicLink (동적링크) 만들기 - 2편 (0) | 2022.02.28 |