본문 바로가기
🖥 Programming/📱 Android (Kotlin)

[Android][kotlin] Firebase Crashlytics 연동방법

by MinChan-Youn 2022. 3. 24.

안녕하세요~ 챠니입니다! :)

이번에는 Firebase에서 제공하는 Crashlytics에 대해서 알아보겟습니다.

 

Firebase Crashlytics란?

Firebase Console에서 포괄적인 비정상 종료 보고서를 확인하는 방법을 설명합니다. Android용 Crashlytics를 사용하면 비정상 종료, 심가하지 않은 오류, '애플리케이션 응답 없음'(ANR) 오류에 관한 보고서를 받을 수 있다.

 

자세한 내용은 Firebase Documentation을 참고하시길 바랍니다.

https://firebase.google.com/docs/crashlytics/get-started?hl=ko&platform=android 

 

Firebase Crashlytics 시작하기  |  Firebase Documentation

Join Firebase at Google I/O 2022 live from Shoreline Amphitheatre and online May 11-12. Register now 의견 보내기 Firebase Crashlytics 시작하기 iOS+ Android Unity 이 빠른 시작에서는 Firebase Crashlytics SDK를 사용해 앱에 Firebase Cras

firebase.google.com

 

 

    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된 화면

     

    RuntimeException이 제대로 동작했다면 - Firebase Crashlytics 홈페이지로 이동해 보겠습니다.

    전에 비정상 종료를 기다리는 페이지는 없어지고 "비정상 종료 미발생 통계"에 대한 페이지로 변경된 것을 확인할 수 있습니다.

    해당페이지에서 어떤 Activity에서 종료가 되었고, 어떤 문제점으로 인해서 종료가 되었는지에 대한 부분을 자세하게 확인 할 수 있습니다.

     

    지금까지 Firebase Crashlytics에 대해서 알아보았습니다. 

    Crashlytics를 활용하여 앱을 배포한다면 사용자가 앱을 사용하면서 발생되는 비정상종료에 대한 장애를 자세하게 확인하여 개발자들이 편하게 수정을 할 수 있는 통계자료를 제공 될 수 있습니다.

     

    글 정리 & 소스코드

    [필요자료]

    1-1. Firebase 프로젝트 추가방법: https://minchanyoun.tistory.com/106

     

    [android] Firebase 프로젝트 추가방법

    안녕하세요~ 챠니입니다! :) 오늘은 Firebase 프로젝트 추가하는 방법에 대해서 알아보겠습니다. Firebase 프로젝트 추가 먼저 Firebase 프로젝트 추가를 할려면 Firebase 홈페이지에 접속합니다. 어렵지

    minchanyoun.tistory.com

     

    1-2. Firebase Android App 등록방법: https://minchanyoun.tistory.com/107

     

    [android][kotlin] Firebase Android App 등록방법

    ● 생성한 프로젝트 클릭 ● 프로젝트에서 사용할 "앱 추가" ● Android 선택 ● 3가지 내용 작성 (바로 아래에 자세하게 설명하니 잘 따라와 주세요) 1-1. Android 패키지이름  - FCM을 사용할 안드로

    minchanyoun.tistory.com

     

     

    [소스코드]
    Crashlytics전체 코드: https://github.com/younminchan/kotlin-study/tree/main/Crashlytics_kotlin

     

    GitHub - younminchan/kotlin-study: kotlin 다양한 예제코드

    kotlin 다양한 예제코드. Contribute to younminchan/kotlin-study development by creating an account on GitHub.

    github.com

     

     

     

    질문 또는 궁굼한 부분은 댓글을 남겨주세요! 친절하게 답변드리겠습니다!

    응원의 댓글은 저에게 큰 힘이 된답니다! :)

    즐거운 하루되세요!

     

    깃허브 보러 놀러오세요 👇 (맞팔환영)

    https://github.com/younminchan

     

    younminchan - Overview

    안드로이드 2년차 개발자 •⚽️/🎤/🥁/🖥/🏃‍♂️/🚴‍♂️/🤟 TechBlog⬇️ minchanyoun.tistory.com - younminchan

    github.com