물에 살고싶은 개발자

[Crashlytics] 크래시 리포트를 위한 Crashlytics 기본 사용법 본문

Android

[Crashlytics] 크래시 리포트를 위한 Crashlytics 기본 사용법

돼지사랑 2022. 8. 21. 01:35

이 글은 사용법에 대한 글이므로 사용법만 콤팩트하게 적고자 한다. 

 

하지만 글을 시작하기전에 왜써야하는지만 간단하게 적고 시작하자.

안드로이드 개발을 하다보면 테스트 시 앱이 죽는 이유들이 다양한데, 문제는 개발자가 직접 테스트할때는 얼마든지 로그를 보고 수정하면 되지만 외주 작업 시 클라이언트에게 apk를 넘겨 검수를 받는다던가 하는 경우 앱이 죽는 정황만 갖고 디버깅을 하기엔 무리가 있는 경우가 있다. 그럴때 Crashlytics를 적용해두면 앱이 죽을 경우 전부 파이어베이스쪽에 리포트가 오고 로그도 보여주기때문에 디버깅하기가 한층 수월해진다. 적어도 나는 그런 이유로 사용한다. 서론은 여기까지 하고 사용법 시작하겠다 .

 

1. build.gradle(:app) 에 의존성 추가

dependencies {
	// 호환되는 버전을 자동으로 잡아줌
    implementation platform('com.google.firebase:firebase-bom:30.3.1')

    implementation 'com.google.firebase:firebase-crashlytics-ktx'
    // crashlytics를 이용하기 위해선 analytics가 필요
    implementation 'com.google.firebase:firebase-analytics-ktx'
}

 

2. build.gradle(프로젝트) buildscript dependencies에 클래스패스 추가

buildscript {
    repositories {
        google()
    }

    dependencies {
        // ...
        classpath 'com.google.gms:google-services:4.3.13'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.1'
    }
}

allprojects {
    repositories {
        // 구글 저장소도 추가해줘야한다. 최신버전이면 settings.gradle에 추가해주자
        google()
    }
}

 

3. build.gradle(:app)에 플러그인 추가

plugins {
    // ... 기존에 추가되어있던 플러그인들 
    id "com.google.firebase.crashlytics"
}

 

여기까지하면 앱에다 할 작업은 끝이다.

 

일단은 파이어베이스콘솔에 프로젝트를 등록하자.

콘솔에 프로젝트 등록하는 방법은 이 글에선 생략하고 참고 블로그를 링크하겠다.

 

구글 파이어베이스 콘솔로 들어가서 구글로그인 후 프로젝트 생성하고 출시 및 모니터링쪽을 보자

파이어베이스 콘솔 스크린샷

글쓰는날짜 기준으로 현재는 저렇게 되어있는데, 이제 앱에서 크래시가 나면 자동으로 감지하면서 사용 가능해진다.

 

그럼 앱에서 크래시를 강제로 내보자 

적당히 메인액티비티의 onCreate() 함수쯤에서 아래 코드를 실행시켜보자 

throw IllegalStateException("Firebase Crashlytics Custom logging Test")

이제 앱을 실행시켜보면 위 코드로 인해 앱이 죽을텐데 그럼 파이어베이스 콘솔에서 다시 Crashlytics로 가보자 

그럼 앱을 감지했다고 뜨면서 잠시 기다리면 아래 이미지처럼 대시보드가 나올것이다.

Crashlytics의 대시보드

저기서 아래쪽에 메인액티비티쪽을 클릭하면 어떤 이유로 앱이 죽었는지에 대한 로그가 쭉 나온다.

그 내용들을 보고 디버깅을 하면 된다

 

추가로, 코틀린 기준으로 아래 코드와 같이 어느정도 로그에 대한 커스텀이나 아이디지정,키값도 세팅이 가능하다.

  crashlytics.run {
            setUserId("SomeUserId")
            setCustomKey("userKey", 123456789)
            setCustomKey("customKey", "customValue")
        }

 

 

끝! 

Comments