반응형

이번 포스팅에서는 앱 크래시 관리를 위해 보편적으로 사용하는 Crashlytics에 대해 작성하고자 한다.

최근 구글에서 인수하면서 Crashlytics가 Firebase에 편입되었기에 Firebase Crashlytics를 기준으로 작성하였다.


출처 : Firebase





이번 포스팅에서 기술한 단계를 모두 따라오게 된다면, 여러분은 개발하거나 관리중인 앱의 에러분석에 많은 도움이 될 것 이다.


먼저, 다음의 링크를 통해 Firebase 콘솔에 접근한다. 로그인된 콘솔에서 지난번 포스팅에서 생성한 프로젝트 클릭. 

(지난 포스팅 참조 - [Android] Firebase 기본 설정)





해당 프로젝트 콘솔에 진입하게 되면, 좌측 중간에 'Crashlytics' 항목이 보일 것이다. 해당 항목 클릭.





우리는 프로젝트에 Crashlytics를 처음 붙여보기 때문에 위의 항목 'Crashlytics를 처음 사용하는 앱이며 설치된 SDK 버전이 없습니다' 클릭 후 다음버튼 클릭. (사실 아래 항목도 크게 어려움은 없다.)



Crashlytics 문서로 이동하여, 가이드 항목에 따라 Gradle 설정.

Url : https://firebase.google.com/docs/crashlytics/get-started?authuser=0#android


프로젝트 수준 build.gradle 설정

buildscript {
ext.kotlin_version = '1.2.71'
repositories {
google()
jcenter()

// repository를 추가합니다.
maven {
url 'https://maven.fabric.io/public'
}
}
dependencies {
...

// Firebase 사용을 위해 구글 서비스를 추가합니다. (버전은 3.1.2 이상으로 설정되어야 합니다.)
classpath 'com.google.gms:google-services:4.1.0'

// Crashlytics 라이브러리
classpath 'io.fabric.tools:gradle:1.26.1'
}
}

allprojects {
repositories {
...

// repository를 추가합니다.
maven {
url 'https://maven.google.com/'
}
}
}


앱 수준 build.gradle 설정

apply plugin: 'com.android.application'
...
// fablic 플러그인 추가
apply plugin: 'io.fabric'

...

dependencies {
...

// Firebase Core 라이브러리 추가
implementation 'com.google.firebase:firebase-core:16.0.4'
// Crashlytics 라이브러리 추가
implementation 'com.crashlytics.sdk.android:crashlytics:2.9.5'
}
apply plugin: 'com.google.gms.google-services'




빌드 후 앱을 실행하면 아래와 같이 인스톨 성공 화면이 뜨게 된다. 아래 대시보드로 이동버튼 클릭.




Crashlytics 콘솔에서는 다양한 이벤트 및 버전에 따른 에러 분석이 가능하다.




상단 그림의 필터링 버튼을 누르면, 아래 그림과 같이 버전별 필터링도 가능하다.




Crashlytics에서 관리되는 버전은 앱 수준 build.gradle에서 개발자가 설정하는 버전과 연동된다.

android {
compileSdkVersion 28
defaultConfig {
applicationId "com.ktops.fcmtest"
minSdkVersion 25
targetSdkVersion 28
versionCode 1       // 버전코드 
versionName "1.0"   // 버전명
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}




로그 수집을 위해서는 초기 init 시점에 Fabric을 초기해 주어야 한다.

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

init()
}

fun init() {
// Crashlytics 초기화
Fabric.with(this, Crashlytics())
}
}




이번 포스팅에서는 Firebase의 Crashlytics를 연동하는 방법에 대해 기술하였다. 

해당 연동을 통해 앱의 비정상 종료에 대한 분석을 누구보다 쉽고 빠르게 할 수 있으며, 보다 완성도 높은 앱 개발이 가능하리라 생각하며, 해당 포스팅을 마치도록 한다.


반응형

+ Recent posts