핀수로그
  • Crashlytics 추가하기
    2023년 09월 24일 14시 58분 05초에 업로드 된 글입니다.
    작성자: 핀수
    728x90
    반응형
     

    Firebase Console에 프로젝트가 추가되어 있다고 가정하고 글을 작성한다.
    아직 프로젝트를 추가하지 않았다면 아래 링크를 참고하면 된다.

    내 프로젝트와 Firebase 연동하기

    1. Firebase 사이트로 이동한다. 링크 2. 시작하기를 누른다. 3. 프로젝트 만들기를 클릭한다. 4. 프로젝트의 이름을 입력한다. 각 화면의 안내에 따라 프로젝트를 생성하면 된다. 5. 프로젝트 생성이

    www.pinslog.com

     

    Crashlytics

    firebase에서 제공하는 초경량 오류 보고 솔루션이다.
    애플리케이션을 서비스하다보면 오류가 일어나는 것은 당연한 것인데 (..)
    이러한 이력을 관리해야 개선이 가능할 것이다.
    이전에는 오류 로그도 따로 사내 서버에 저장하여 관리 했었기 때문에 crashlytics를 사용할 일이 없었는데,
    혼자 서비스를 하려고 할 때는 이것만한 것이 없다.
     
    추가하려고 할 때마다 매번 찾아다니는 것이 귀찮아 여기 정리해두려고 한다.
     

    추가하기

    SDK 추가 버튼을 누르고 들어간다.

    그러면 문서로 이동한다.

    Firebase Crashlytics 시작하기

    Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 Firebase Crashlytics 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. iO

    firebase.google.com

    문서가 정확하고 잘 나와있지만...gradle 버전마다 붙여넣어야하는 위치가 조금씩 달라지고
    형태가 조금씩 달라져서 여간 귀찮은게 아니다. 왜 이렇게 자주 바뀌는지 모르겠다.
    내 프로젝트는 gradle 7.2.1 버전을 사용하고 있다. 참고!
     

    Project 수준 build.gradle

    dependencies {
            ...
            classpath 'com.google.gms:google-services:4.3.15'
            classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
    
        }

    APP 수준 build.gradle

    plugins {
        ...
        id 'com.google.gms.google-services'
        // Add the Crashlytics Gradle plugin
        id 'com.google.firebase.crashlytics'
    }
    // firebase
    implementation platform('com.google.firebase:firebase-bom:31.2.3')
    implementation 'com.google.firebase:firebase-analytics-ktx'
    implementation 'com.google.firebase:firebase-crashlytics-ktx'

     
    sync now 를 눌러주면 crashlytics를 사용하기 위한 준비는 모두 끝났다.
    참으로 간단하다.
    이후 빌드를 해주면 crashlytics 페이지의 화면이 아래와 같이 바뀌는 것을 확인할 수 있다.

    테스트 해보기

    제대로 오류 로그가 수집되는지 확인하기 위해 버튼을 누르면 RuntimeException이 일어나도록 해두었다.
    수집되는 것을 확인할 수 있었다.

    런타임 오류가 발생하니 픽 죽어버리는게 마음에 들지 않는다.
    역시 예외처리를 해주어야만.....
    한가지 참고해야할 것은 Thread.UncaughtExceptionHandler 사용해서 예외를 처리하면
    crashlytics가 제대로 수집되지 않았다.
    비정상 오류로 간주하지 않았기 때문.. 제대로 기억나진 않는데 필터에서 비정상 종료가 아니고 심각하지 않음으로 걸러서 보던가
    추가로 예외가 발생했을 때 커스텀 로그를 남겨주면 됐었던 것으로 기억한다.


    공부하며 작성된 글이라 잘못된 정보가 있을 수 있습니다.
    말씀해주시면 수정하겠습니다. 감사합니다.
     

    728x90
    반응형
    댓글