어느날 Firebase Console에 들어가니깐 2020년 11월 15일 이후에도 Firebase Console에서 오류보고서를 확인 하려면 sdk를 업그레이드 하라고 알림이 떴습니다.
Crashlytics를 너무 잘 이용하고 있기 때문에 요구에 맞춰 업데이트 하도록 합니다.
원문은 링크를 참고해주세요
신규로 Crashlytics를 추가하시는 분은 제 포스팅을 참고해주세요
먼저 FirebaseConsole에서 프로젝트를 생성하지 않으신분들은 프로젝트를 생성하시고, 이미 생성하신 분들은 google-services.josn 파일을 다운 받으세요.( 파일은 프로젝트 콘솔 메인에 처음 진입했을때 우측 하단에서 받을 수 있습니다. )
다운로드 받으셨을때 이미 다운로드된 파일로 인해 이름에 (2) 가 붙지 않도록 주의하세요
app 폴더에 복사
다운로드 받은 파일을 app 폴더로 복사하세요
build.gralde(project level) 수정
기존에 Crashlytics를 사용하시던 분들은 Fabric 관련 내용을 삭제해주세요.
-
maven { url 'https://maven.fabric.io/public' } -
classpath 'io.fabric.tools:gradle:1.31.2'
수정된 build.gradle
buildscript {
ext.kotlin_version = '1.3.41'
repositories {
jcenter()
google() ( 필수 )
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.1'
classpath 'com.google.gms:google-services:4.3.3' ( 필수 )
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.3.0' ( 필수 )
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }
}
build.gradle ( app level ) 수정
제거
기존에 사용중이던 fabric이나 crashlytics 코드들을 제거해주세요
apply plugin: 'io.fabric'implementation 'com.crashlytics.sdk.android:crashlytics:2.9.9@aar'implementation 'com.google.firebase:firebase-analytics:17.4.4'
추가
- implementation 'com.google.firebase:firebase-crashlytics-ndk:17.2.1'
- apply plugin: 'com.google.firebase.crashlytics'
buildTypes {
.....
release {
firebaseCrashlytics {
nativeSymbolUploadEnabled true
strippedNativeLibsDir "$buildDir/ndklibs/obj"
unstrippedNativeLibsDir "$buildDir/ndklibs/libs"
}
}
}
공식 문서에는 'nativeSymbolUploadEnabled true'만 추가하라고 나와 있는데 그렇게 하면 에러가 발생합니다.
'crashlytics could not determine stripped/unstripped native library directories for project'
위와 같이 모두 추가해줘야 에러가 발생하지 않습니다.
Application.kt
어플리케이션 소스 역시 fabric으로 작성된 코드를 지우고 새로운 crashlytics 소스를 사용합니다.
제거
Fabric.with(this,Crashlytics())
추가
- FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)
Androidmanifest.xml
기존에 페브릭을 사용 하시던 분들은 아래 코드를 제거해주세요.
<meta-data android:name="io.fabric.ApiKey"
android:value="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
강제 에러 발생시키기
강제 에러 발생 외에도 많은 부분이 메소드가 변경 됐으니, 공식 문서를 참고해서 변경해주세요.
throw new RuntimeException("Test Crash");
위의 강제 에러 메소드를 실행시키니 5분이내에 콘솔에 작성되어 정상적으로 변경된걸 확인할 수 있었습니다.
감사합니다.
'안드로이드 > 팁' 카테고리의 다른 글
TargetSdkApi 29 대응하기 (0) | 2020.10.30 |
---|---|
[Android] Webview내 카카오톡 공유하기 에러 / 해결방안 (0) | 2020.09.25 |
카카오 애드핏 적용 후기 (0) | 2020.08.05 |
게시판 구현 복기 (0) | 2020.07.16 |
제플린을 사용하는 디자이너와 협업하기 (0) | 2020.06.25 |